約 6,591,283 件
https://w.atwiki.jp/kimikage/pages/51.html
印刷ダイアログを表示して印刷。 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Drawing.Printing; using System.Linq; using System.Text; using System.Windows.Forms; namespace WindowsFormsApplication1 { public partial class Form1 Form { private PrintDocument prtDoc = new PrintDocument(); private PrintDialog prtDialog = new PrintDialog(); public Form1() { InitializeComponent(); } /// summary /// フォームロード /// /summary /// param name="sender" /param /// param name="e" /param private void Form1_Load(object sender, EventArgs e) { // PrintPageイベントに処理を追加 this.prtDoc.PrintPage += prtDoc_PrintPage; // 印刷ダイアログの印刷ドキュメントを設定 this.prtDialog.Document = prtDoc; } /// summary /// 印刷ボタンクリック /// /summary /// param name="sender" /param /// param name="e" /param private void btnPrint_Click(object sender, EventArgs e) { // 印刷ダイアログを表示 if (this.prtDialog.ShowDialog() == System.Windows.Forms.DialogResult.OK) { // 印刷処理 this.prtDoc.Print(); } } /// summary /// プリントドキュメント印刷 /// /summary /// param name="sender" /param /// param name="e" /param private void prtDoc_PrintPage(object sender, PrintPageEventArgs e) { // 描画対象のグラフィクスを設定 Graphics g = e.Graphics; // グラフィクスに描画 g.DrawString("印刷しちゃうぞ!", new Font("MS ゴシック", 9F, System.Drawing.FontStyle.Bold), Brushes.Black, this.prtDoc.PrinterSettings.DefaultPageSettings.PrintableArea.X, this.prtDoc.PrinterSettings.DefaultPageSettings.PrintableArea.Y); } } }
https://w.atwiki.jp/touhoukashi/pages/828.html
【登録タグ Alstroemeria Records Double Counterpoint S mican* オリジナル 曲】 【注意】 現在、このページはJavaScriptの利用が一時制限されています。この表示状態ではトラック情報が正しく表示されません。 この問題は、以下のいずれかが原因となっています。 ページがAMP表示となっている ウィキ内検索からページを表示している これを解決するには、こちらをクリックし、ページを通常表示にしてください。 /** General styling **/ @font-face { font-family Noto Sans JP ; font-display swap; font-style normal; font-weight 350; src url(https //img.atwikiimg.com/www31.atwiki.jp/touhoukashi/attach/2972/10/NotoSansCJKjp-DemiLight.woff2) format( woff2 ), url(https //img.atwikiimg.com/www31.atwiki.jp/touhoukashi/attach/2972/9/NotoSansCJKjp-DemiLight.woff) format( woff ), url(https //img.atwikiimg.com/www31.atwiki.jp/touhoukashi/attach/2972/8/NotoSansCJKjp-DemiLight.ttf) format( truetype ); } @font-face { font-family Noto Sans JP ; font-display swap; font-style normal; font-weight bold; src url(https //img.atwikiimg.com/www31.atwiki.jp/touhoukashi/attach/2972/13/NotoSansCJKjp-Medium.woff2) format( woff2 ), url(https //img.atwikiimg.com/www31.atwiki.jp/touhoukashi/attach/2972/12/NotoSansCJKjp-Medium.woff) format( woff ), url(https //img.atwikiimg.com/www31.atwiki.jp/touhoukashi/attach/2972/11/NotoSansCJKjp-Medium.ttf) format( truetype ); } rt { font-family Arial, Verdana, Helvetica, sans-serif; } /** Main table styling **/ #trackinfo, #lyrics { font-family Noto Sans JP , sans-serif; font-weight 350; } .track_number { font-family Rockwell; font-weight bold; } .track_number after { content . ; } #track_args, .amp_text { display none; } #trackinfo { position relative; float right; margin 0 0 1em 1em; padding 0.3em; width 320px; border-collapse separate; border-radius 5px; border-spacing 0; background-color #F9F9F9; font-size 90%; line-height 1.4em; } #trackinfo th { white-space nowrap; } #trackinfo th, #trackinfo td { border none !important; } #trackinfo thead th { background-color #D8D8D8; box-shadow 0 -3px #F9F9F9 inset; padding 4px 2.5em 7px; white-space normal; font-size 120%; text-align center; } .trackrow { background-color #F0F0F0; box-shadow 0 2px #F9F9F9 inset, 0 -2px #F9F9F9 inset; } #trackinfo td ul { margin 0; padding 0; list-style none; } #trackinfo li { line-height 16px; } #trackinfo li nth-of-type(n+2) { margin-top 6px; } #trackinfo dl { margin 0; } #trackinfo dt { font-size small; font-weight bold; } #trackinfo dd { margin-left 1.2em; } #trackinfo dd + dt { margin-top .5em; } #trackinfo_help { position absolute; top 3px; right 8px; font-size 80%; } /** Media styling **/ #trackinfo .media th { background-color #D8D8D8; padding 4px 0; font-size 95%; text-align center; } .media td { padding 0 2px; } .media iframe nth-of-type(n+2) { margin-top 0.3em; } .youtube + .nicovideo, .youtube + .soundcloud, .nicovideo + .soundcloud { margin-top 0.75em; } .media_section { display flex; align-items center; text-align center; } .media_section before, .media_section after { display block; flex-grow 1; content ; height 1px; } .media_section before { margin-right 0.5em; background linear-gradient(-90deg, #888, transparent); } .media_section after { margin-left 0.5em; background linear-gradient(90deg, #888, transparent); } .media_notice { color firebrick; font-size 77.5%; } /** Around track styling **/ .next-track { float right; } /** Infomation styling **/ #trackinfo .info_header th { padding .3em .5em; background-color #D8D8D8; font-size 95%; } #trackinfo .infomation_show_btn_wrapper { float right; font-size 12px; user-select none; } #trackinfo .infomation_show_btn { cursor pointer; } #trackinfo .info_content td { padding 0 0 0 5px; height 0; transition .3s; } #trackinfo .info_content ul { padding 0; margin 0; max-height 0; list-style initial; transition .3s; } #trackinfo .info_content li { opacity 0; visibility hidden; margin 0 0 0 1.5em; transition .3s, opacity .2s; } #trackinfo .info_content.infomation_show td { padding 5px; height 100%; } #trackinfo .info_content.infomation_show ul { padding 5px 0; max-height 50em; } #trackinfo .info_content.infomation_show li { opacity 1; visibility visible; } #trackinfo .info_content.infomation_show li nth-of-type(n+2) { margin-top 10px; } /** Lyrics styling **/ #lyrics { font-size 1.06em; line-height 1.6em; } .not_in_card, .inaudible { display inline; position relative; } .not_in_card { border-bottom dashed 1px #D0D0D0; } .tooltip { display flex; visibility hidden; position absolute; top -42.5px; left 0; width 275px; min-height 20px; max-height 100px; padding 10px; border-radius 5px; background-color #555; align-items center; color #FFF; font-size 85%; line-height 20px; text-align center; white-space nowrap; opacity 0; transition 0.7s; -webkit-user-select none; -moz-user-select none; -ms-user-select none; user-select none; } .inaudible .tooltip { top -68.5px; } span hover + .tooltip { visibility visible; top -47.5px; opacity 0.8; transition 0.3s; } .inaudible span hover + .tooltip { top -73.5px; } .not_in_card span.hide { top -42.5px; opacity 0; transition 0.7s; } .inaudible .img { display inline-block; width 3.45em; height 1.25em; margin-right 4px; margin-bottom -3.5px; margin-left 4px; background-image url(https //img.atwikiimg.com/www31.atwiki.jp/touhoukashi/attach/2971/7/Inaudible.png); background-size contain; background-repeat no-repeat; } .not_in_card after, .inaudible .img after { content ; visibility hidden; position absolute; top -8.5px; left 42.5%; border-width 5px; border-style solid; border-color #555 transparent transparent transparent; opacity 0; transition 0.7s; } .not_in_card hover after, .inaudible .img hover after { content ; visibility visible; top -13.5px; left 42.5%; opacity 0.8; transition 0.3s; } .not_in_card after { top -2.5px; left 50%; } .not_in_card hover after { top -7.5px; left 50%; } .not_in_card.hide after { visibility hidden; top -2.5px; opacity 0; transition 0.7s; } /** For mobile device styling **/ .uk-overflow-container { display inline; } #trackinfo.mobile { display table; float none; width 100%; margin auto; margin-bottom 1em; } #trackinfo.mobile th { text-transform none; } #trackinfo.mobile tbody tr not(.media) th { text-align left; background-color unset; } #trackinfo.mobile td { white-space normal; } document.addEventListener( DOMContentLoaded , function() { use strict ; const headers = { title アルバム別曲名 , album アルバム , circle サークル , vocal Vocal , lyric Lyric , chorus Chorus , narrator Narration , rap Rap , voice Voice , whistle Whistle (口笛) , translate Translation (翻訳) , arrange Arrange , artist Artist , bass Bass , cajon Cajon (カホン) , drum Drum , guitar Guitar , keyboard Keyboard , mc MC , mix Mix , piano Piano , sax Sax , strings Strings , synthesizer Synthesizer , trumpet Trumpet , violin Violin , original 原曲 , image_song イメージ曲 }; const rPagename = /(?=^|.*
https://w.atwiki.jp/api_programming/pages/195.html
下位ページ インテントとインテントフィルタ サービス(Service) ストレージオプション フラグメント(Fragment) プロセスとスレッド(processes and threads) リストビュー(List View) レイアウト(Layout) 入力コントロール(Controls) 設定(Setting) 通知(Notification) Content スピナーコントロールの設定レイアウトの準備 選択肢の設定string.xmlでの設定 プログラム側から値を選択する アクティビティアプリの閉じられ方で、挙動が異なる アクションバーの代わりに、ツールバーを使うアクションバーを消す ツールバーをレイアウトに追加する Activity内で、アクションバーの代わりに使う記述をする スライドメニューを実装するドロワーレイアウトを作成する ドロワービューの中身を準備するListViewで作る 別のXMLファイルで作る ドロワーのオープン・クローズを実装する バックグラウンド処理(サービス) 閉じられても動作するサービスを動かすServiceクラスの作成 Activityから、作成したサービスを動かす 加速度センサの情報を受ける 回転角の情報を受け取る回転角の解釈 画面の回転を抑制するAndroidManifest.xmlで抑制する 動的に(プラグラム内で)で抑制する インテントにオブジェクトの情報を乗っけるparcelable をインプリメントしたクラスをつくるParcelable.Creater フィールドの実装 BundleやIntentに情報を乗せる Activity側で受ける 複数の情報をリストにして表示する バイブレーションを一定時間、作動させるパーミッションの追加 Vibratorオブジェクトを生成する vibrateを実行する 通知バーにバックグラウンド起動中の表示を出す 裏返したときの方向で、記録を分ける メニューのバーを設定するメニューリソースを準備するフォルダの作成 リソースファイルの作成 設定したメニューファイルを、Activityのメニューバーに評させる メニューの選択を受け取る処理を作る チェックボックスを動作させる 設定画面を設定する/設定情報をローカルストレージに残す 記録内容をGoogleスプレッドシートに記録する 記録内容をGoogleカレンダーに記録するブラウザでURLを開く ブラウザを開くURIとして、認証ページを指定する リダイレクトを受け取る 受け取ったリダイレクトをデータに紐解く codeを送って、tokenを受け取る tokenを保存する 終了時間と開始時間から、時間の計算をする リストビューで独自レイアウトを設定する USBデバッグ リリースビルド スピナーコントロールの設定 [部分編集] レイアウトの準備 Spinner android id="@+id/planets_spinner" android layout_width="fill_parent" android layout_height="wrap_content" / 選択肢の設定 string.xmlでの設定 まずは、string.xmlに文字配列を作る string-array name="planets_array" item Mercury /item item Venus /item item Earth /item /string-array この文字配列をアダプタにして、スピナーコントロールにアダプタをするリソースのアダプタ化には、ArrayApapter.createFromResource を使用できる。simple_spinner_item はデフォルト外観を設定している。通常はこれで良し。 setDropDownViewResource(int) は選択時に一覧を表示するのに使う。なくても一応ドロップダウンは出てくるが、ちょっとしょぼい? Spinner spinner = (Spinner) findViewById(R.id.spinner); ArrayAdapter CharSequence adapter = ArrayAdapter.createFromResource(this, R.array.planets_array, android.R.layout.simple_spinner_item); adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); spinner.setAdapter(adapter); createFromResource - ArrayAdapter | Android Developers setDropDownViewResource - ArrayAdapter | Android Developers プログラム側から値を選択する Spinner.setSelection で位置を指定する。その位置を取得するにはAdapterを使う。 使っているアダプタを取得するobjSpinner.getAdapter でアダプタを取得できる objAdapter.getPosition("...") でセレクタの位置を取得値が見つからなかったら -1 が返る objSpinner.setSelection に先程取得した位置を設定する ArrayAdapter spinnerAdapter = (ArrayAdapter) objSpinner.getAdapter(); int i = spinnerAdapter.getPosition("value"); objSpinner.setSelection(i); getAdapter - AbsSpinner | Android Developers getPosition - ArrayAdapter | Android Developers setSelection - AbsSpinner | Android Developers アクティビティ アプリの閉じられ方で、挙動が異なる onDestroyが呼ばれない限りは、Serviceを使わずとも、 ↓にある通り、ホームボタンとバックボタンでアプリケーションから離れた場合で挙動が違う。 https //kokufu.blogspot.jp/2011/03/activity.html 説明として、 ホームボタン:ホームアプリケーションが起動している バックボタン:Activityスタックからポップしている と書いてあったが、気持ち悪いのは、□ボタンを押すとあたかもまだ生きているかのように、アプリケーションリストに表示されるから。画面上に残っているが実際には onDestroy で消えている。 このあたりが、「アプリケーションをスワイプして消しても消さなくてもメモリにはそれほど影響しない」ということなんだろうか。 アクションバーの代わりに、ツールバーを使う [部分編集] 今後の拡張性から、アクションバーよりツールバーを使ったほうが良い、という記述をちょこちょこ見かけるが、Android Studioでプロジェクトを作ると、基本はアクションバーが設定されている。これをツールバーに置き換える。 アプリバーの追加 | Android Developers Toolbar | Android Developers AndroidのToolBar(新しいActionBar)メモ | Qiita アクションバーを消す res/values/styles.xmlで AppThemeのテーマを変更する style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar" ツールバーをレイアウトに追加する android.support.v7.widget.Toolbar android id="@+id/toolbar" android layout_width="match_parent" android layout_height="wrap_content" / レイアウトの@android */* ,?attr/* ,?* ,?android attr/* の違い | Qiita Activity内で、アクションバーの代わりに使う記述をする /* ToolBarの設定 */ Toolbar toolbar = (Toolbar)findViewById(R.id.toolbar); toolbar.setTitleTextColor(Color.WHITE); // 設定をしておく setSupportActionBar(toolbar); // アクションバーの代わり、という設定 これを書かないと、画面上では何も表示されない(空間だけはある) スライドメニューを実装する [部分編集] NavigationDrawer が正式名称? DrawerLayout | Android Developers ナビゲーションドロワーの作成 | Android Developers ドロワーレイアウトを作成する レイアウトxmlにて、DrawerLayout オブジェクトをレイアウトのルートビューとして指定する。 ルートの中にドロワービューとメインビューを設定する順序はメインビューを先にする高さはルートに合わせる(match_parent) 次にドロワーのビューを指定するlayout_gravityを指定する(layout_gravity:どっちにくっつけるか、どちら方向から出てくるか?)右から左に出す場合にはstart layout_heightは親ビューと同じ高さを指定する layout_widthはすべての情報が見える幅を指定する ドロワービューの中身を準備する ListViewで作る ListViewの中に android layout_gravity="..." を入れないと、スライドで入ってくる設定にならず、重ねて見えている状態になる android background="#111" 背景がないと、中途半端にすけた状態で表示される。 別のXMLファイルで作る NavigationViewで作った場合、ヘッダ部分とメニュー部分をそれぞれレイアウトとメニューで作成する app headerLayout="@layout/drawer_header" app menu="@menu/drawer" ドロワーのオープン・クローズを実装する DrawerLayout にリスナーをセットする。このリスナーは DrawerLayout.DrawerListener を実装して、使う。 Activity にアクションバーがセットされている場合は ActionBarDrawerToggle が DrawerLayout.DrawerListener を実装する。 DrawerLayout mDrawerLayout = ...; ActionBarDrawerToggle mDrawerToggle; mDrawerToggle = new ActionBarDrawerToggle(this, mDrawerLayout, R.string.drawer_open, R.string.drawer_close) { public void onDrawerClosed(View view) {...} public void onDrawerOpened(View drawerView) {...} }; // Set the drawer toggle as the DrawerListener mDrawerLayout.setDrawerListener(mDrawerToggle); 【Android】スライドして表示されるメニュー | Qiita Navigation Drawer の概要 | Android 開発入門 Navigation Drawer の基本的な実装方法 | Android 開発入門 バックグラウンド処理(サービス) サービス - Android Developers Androidアプリでのバックグラウンド処理と通知機能 | Android Studio 2で始めるアプリ開発入門 - CodeZine 流れ Serviceのサブクラスを作成する AndroidManifest.xmlにサービスを登録 サブクラスで、必要なクラスをオーバーライドする。次のあたり。onCreate() onStartCommand() onDestroy() アクティビティからサービスを起動する (きちっと止まるように設計しておく) 閉じられても動作するサービスを動かす バックグラウンドで動作させるためにはServiceを用いる。 Serviceクラスの作成 Activityのように、作成・開始などのイベントで動くが、おもに3つ。 onCreate onStartCommand onDestroy Service | Android Developers Activityから、作成したサービスを動かす startServiceで起動、stopService(stopSelf)で停止。忘れずにServiceを止めないと、いつまでも動き続ける。 startService、stopServiceなどには、インテントを準備して、サービスにそれをなげる形をとっている。 startService - Context | Android Developers stopService - Context | Android Developers stopSelf - Service | Android Developers 加速度センサの情報を受ける 回転角の情報を受け取る センサーは加速度まではそのまま読み取れるが、回転角は加速度情報、地磁気情報から計算する必要がある。まず getRotationMatrix で回転行列を求め、getOrientation で回転行列を回転角に変換する(計算する) getRotationMatric - SensorManager | Android Developers getOrientation - SensorManager | Android Developers 引数に取った2つの配列には、傾斜行列、回転行列(の情報)が計算されて入ってくる。情報が不要ならnullでよい。 回転角の解釈 正位置として Zは天を指す Yは磁北を指す Xは Y,Z の外積を指す 画面の回転を抑制する AndroidManifest.xmlで抑制する 回転させないActivityに android screenOrientation="portrait" を追加すると、縦向き固定になる activity | Android Developers 動的に(プラグラム内で)で抑制する Activity内で、setRequestedOrientation を呼び出す setRequestedOrientation - Activity | Android Developers screenOrientation - ActivityInfo | Android Developers インテントにオブジェクトの情報を乗っける bundleで多くの情報をわたすような方法として、putParcelableArrayList くらいしか見当たらないので、これを使う。そのためには、Parcelable をimplements したようなクラスを作る必要がある。 Bundle | Android Developers parcelable をインプリメントしたクラスをつくる Parcelable実装にはParcelable.Createorというstatic fieldが必要。そのフィールドの初期化にて、Parcelに保存したデータを復元するためのコンストラクタを呼ぶ。 Parcelable | Android Developers Parcelable.Creater フィールドの実装 Parcelable.Creater | Android Developers createFromParcel(Parcel source)Parcelable.writeToParcel() で書き出されたParcelデータをインスタンス化する → コンストラクタを作っておく newArray(int size)ParcelableクラスのArrayを作る BundleやIntentに情報を乗せる IntentならputParcelableArrayListExtra、BundleならputParcelableArrayList で情報を登録 putParcelableArrayListExtra - Intent | Android Developers getParcelableArrayList - Bundle | Android Developers Activity側で受ける IntentならgetParcelableで受けられる。受けたときにすでにParcelableをimplementしたオブジェクトで受けられる。 getParcelableArrayListExtra - Intent | Android Developers getParcelableArrayList - Bundle | Android Developers 複数の情報をリストにして表示する [https //www54.atwiki.jp/api_programming/pages/202.html] バイブレーションを一定時間、作動させる Vibratorインスタンスからvibrate()を実行する。バイブレーションの実施にはAndroidManifest.xmlにパーミッションの追加が必要。 パーミッションの追加 マニフェストにパーミッションを追加する - パーミッションの宣言 | Android Developers Vibratorオブジェクトを生成する getSystemServiceでVibratorオブジェクトを生成する Vibrator vibrator = (Vibrator) getSystemService(VIBRATOR_SERVICE); getSystemService - Context | Android Developers Vibrator | Android Developers vibrateを実行する 幾つかパターンはあるが、かんたんなところで、これ。 vibrator.vibrate(500); vibrate - Vibrator | Android Developers 通知バーにバックグラウンド起動中の表示を出す 裏返したときの方向で、記録を分ける メニューのバーを設定する メニューリソースを準備し、表示させる。そのうえで、メニューのタップ動作に対する反応を記述する メニュー | Android Developers メニューリソースを準備する フォルダの作成 デフォルトではメニュー用のフォルダが無い(かもしれない)ので、res/menuを追加し、ここに入れておく。 resフォルダ右クリック [New]>[Android resource directory]を選択 ダイアログで、「Resource type 」から「menu」を選択し、OK リソースファイルの作成 menuフォルダを右クリック [New]>[Menu resource file] ファイル名を入力し、OK ファイル内に menu item / item / /menu を記述(実際はidやタイトルを設定する必要あり) Menu Resource | Android Developers 設定したメニューファイルを、Activityのメニューバーに評させる onCreateOptionMenuをオーバーライドして、この中でリソースの指定などを行う。XMLのメニューを実際?のメニューオブジェクトに変換するのに、inflatorを使用できる。 @Override public boolean onCreateOptionsMenu(Menu menu) { MenuInflater inflater = getMenuInflater(); //(1) inflater.inflate(R.menu.menu_options_menu_list, menu); //(2) return super.onCreateOptionsMenu(menu); //(3) } onCreateOptionMenu - Activity | Android Developers メニューの選択を受け取る処理を作る オプションメニューを作っていれば、その受取はonOptionsItemSelectedをオーバーライドして処理できる。 @Override public boolean onOptionsItemSelected(MenuItem item) { return super.onOptionsItemSelected(item); } このとき、itemにクリックされた情報が入っているので、これを紐解いて、どのメニューがクリックされたか判断し、switchなどで処理する。 int itemId = item.getItemId(); Android 3.0(APIレベル11)以降では メニューリソースXMLのitemに、android onClick を記述しておくことで、動作を定義させることもできる。 チェックボックスを動作させる Android/入力コントロール(Controls) 設定画面を設定する/設定情報をローカルストレージに残す Android/設定 記録内容をGoogleスプレッドシートに記録する http //qiita.com/konnobu/items/8bec3d5a45235fc88a08 記録内容をGoogleカレンダーに記録する 多分、クライアント用のライブラリが作られていて、簡単に認証処理をしたり、データを取得したりできるようになっていると思われるが、別サイトでも転用が聞くように、地道な方法を取ってみる。というか、専用のライブラリの使い方をよくわかっていない。 流れは OAuth2.0で認証Google API にプロジェクトと登録(キーの発行) 認証コードを発行 受け取り コードを access token と交換 access token も使って、リクエスト送信 こまごまと引っかかった場所が多数。 AndroidManifest.xmlにパーミッションの設定が必要 ブラウザでURLを開く Android/インテントとインテントフィルタ ブラウザを開くURIとして、認証ページを指定する GoogleのOAuth2認証 OAuth2認証 | Android Developers Step 1 Send a request to Google's OAuth 2.0 server | Google Identify Platform リダイレクトを受け取る 大概の(google 以外でも)場合は、認証後に指定したリダイレクト先に飛ばしてくれる。そのスキーム名に応じて、Android側でどのアプリで開くのかを考えてくれる。Android に「このスキームがきたら、俺のアプリで開いて」と指示するためには、AndroidManifest.xml に記述する必要がある。 scheme // host port / path intent-filter内で、action, category, data を指定する。上記のリダイレクト先に対応する内容を書くのは data で、scheme は data android scheme="com.example.testproject" / のようになる。 Intent の 定数として ACTION_VIEW などが定義されているが、実体は文字列で、それが android.intent.action.VIEW などになる(ので、どれを設定するかはIntent を参照)。ブラウザでどんなスキームがきたらヨソになげるのか、どんな action として投げるのか、説明されている場所がわからないが、ひとまず action ACTION_VIEW category CATEGORY_BROWSABLR scheme ここは各自で で開けた。redirect_uri で scheme //~ が指定できない( /だけ)なので、hostは存在せず、pathだけ。 インテント解決 - インテントとインテント フィルタ | Android Developers Intent - Android Developers 受け取ったリダイレクトをデータに紐解く 一旦受け取れれば、中身は getIntent() を経由して、中身を見られる(Intent.getAction(), Intent.getCategories() など)。OAuth では、path のなかに code を入れて返してくるので、Dataのなかを探せばある Intent intent = getIntent(); String data = intent.getDataString(); とすると、googleの認証で指定した redirect_uri のあとに code がくっついて返ってきている。以下、サンプル com.example.####.#### /oauth2callback?code=4/8abcdefg# 上記の場合、oauth2callback を uri.getPath() で、4/8abcdefg# を getQueryParameter("code") で受け取れる。 getIntent - Activity | Android Developers getData - Intent | Android Developers getQueryParameter - Uri | Android Developers codeを送って、tokenを受け取る コードと必要情報を POST することで、access token との交換をする。この処理は、UIスレッドだとエラーになるので、AsyncTaskで実行する必要がある。 また、交換がうまく行かなかったときは、HttpURLConnection の getInputStream ではなく、 getErrorStream に情報が流れるため、プログラムの確認作業では注意。(この辺をよくわかっていなくて、エラー原因を探すのに苦労した。) redirect_uri はスキームもパスもコード発行依頼時と同じものを使う。 Android/プロセスとスレッド(processes and threads) Async Task | Android Developers tokenを保存する プレファレンスへの保存 終了時間と開始時間から、時間の計算をする リストビューで独自レイアウトを設定する https //www54.atwiki.jp/api_programming/editx/202.html USBデバッグ http //www.aiseesoft.jp/tutorials/android-debug-mode.html リリースビルド http //androidstudio.hatenablog.com/entry/2014/07/26/154043
https://w.atwiki.jp/neosrchelp/pages/34.html
概要 ウィンドウ内にテキストエリアを表示する事が出来ます 文字入力をする事も可能です パラメーター layer(省略可) テキストエリアを配置するレイヤー名を指定します 省略した場合は、SelectLayerで指定したレイヤーが対象となります ※それ以外のパラメータは、以下の共通パラメータを参照してください テキスト共通パラメータ 【例】 SetText text 表示テキスト name テキストウィンドウ width 200 height 96 fontsize 24 fontcolor 0xFF0000 input off backcolor 0x8800FFFF MultiLine off
https://w.atwiki.jp/udon888/pages/62.html
absorbed in every flow of mine, the overseas students had been another time amazed via this particular culture and that they couldn’t assist taking photos occasionally.subsequent came the instant once I asked them to have a try themselves. washing the tea pots, adding tea leaves, and pouring water into the cups, they followed my commands and have been really immersed in charming tea way of life. the tea residence witnessed a in reality exciting time for everyone.on the cease of the pastime, retaining the tea bags in our arms, we took a image to memorize the unforgettable day. it unexpectedly hit me that conventional tradition like tea way of life became of extraordinary attraction and big price. and i swelled with pride to unfold our own culture to human beings everywhere in the world. best seo company
https://w.atwiki.jp/gimpei/pages/9.html
using System; using System.Drawing; using System.Diagnostics; using System.Collections; using System.ComponentModel; using System.Windows.Forms; using System.Data; using System.Threading ; // for Thread using System.Text.RegularExpressions; //for正規表現 using System.Runtime.InteropServices ; // for DllImport using System.ServiceProcess;//ForAppDll using System.DirectoryServices;//ForAppDll using Microsoft.Win32;//forHard using System.Text; using Microsoft.CSharp; //using Win32API; namespace Muno0._1 { /// summary /// Form1 の概要の説明です。 /// /summary public class Form1 System.Windows.Forms.Form { private System.Windows.Forms.PictureBox pictureBox1; private System.Windows.Forms.TextBox textBox1; private System.Windows.Forms.Button submit_b; //以下いろいろイニシャライズ // カレントディレクトリを取得する string nCurrentDir = System.IO.Directory.GetCurrentDirectory(); //グローバル変数の設定 int t2c=0,m_x=0,m_y=0,giHour=0,giMinute=0; private Point mMousePoint; bool m_drag=false; bool m_down=false; string gTxt=""; //****以下の設定はグローバルのブール型に汎用する bool[] gBool = new bool[100]; //****Random クラスの新しいインスタンスを生成する Random hRandom = new System.Random(); //ProcessControllerManager is destined to the control of the system Processes via the Process component //*****プロセスマネージメント private ProcessControllerManager objPcsCrtlMgr = new ProcessControllerManager(); string iTxt; //プログラムランチャの初期設定 string command; System.Diagnostics.Process p; private System.Windows.Forms.RichTextBox richTextBox1; private System.Windows.Forms.PictureBox pictureBox2; private System.Windows.Forms.PictureBox pictureBox3; private System.Windows.Forms.PictureBox SocialWindow; private System.Windows.Forms.Label label1; private System.Windows.Forms.Label label2; private System.Windows.Forms.Label label3; private System.Windows.Forms.Label label4; private System.Windows.Forms.Label label5; private System.Windows.Forms.Label label6; private System.Windows.Forms.Timer timer1; private System.Windows.Forms.Timer cTimer; private System.Windows.Forms.Label label7; private System.Windows.Forms.Label label8; private System.Windows.Forms.Label label9; private System.Windows.Forms.Label label10; private System.Windows.Forms.NotifyIcon notifyIcon1; private System.Windows.Forms.Label label11; private System.Windows.Forms.Timer name_timer; private System.ComponentModel.IContainer components; //*****干渉用 //Running processes listBox private System.Windows.Forms.ListBox lstPcsRun; //Processes info listBox private System.Windows.Forms.ListBox lstPcs; private System.Windows.Forms.Timer timer2; private System.Windows.Forms.TextBox txtMachineName; // returns the name of the local machine public string GetLocalMachine() { return System.Environment.MachineName; } public string GetMachineName() { /* if((txtMachineName.Text.Equals(""))|(txtMachineName.Text=null)) //machineName field is empty, take the local machine { txtMachineName.Text=GetLocalMachine(); txtMachineName.Focus(); } */ return System.Environment.MachineName; } //*****干渉用 public Form1() { // // Windows フォーム デザイナ サポートに必要です。 // InitializeComponent(); // このフォームをタスクバーに表示しない this.ShowInTaskbar = false; //****時間系の宣言 // 必要な変数を宣言する DateTime dtNow = DateTime.Now; // 時を取得する int iHour = dtNow.Hour; giHour = iHour; // 分を取得する int iMinute = dtNow.Minute; giMinute = iMinute; //以下、PATHの起動設定 /* p = new System.Diagnostics.Process(); p.StartInfo.FileName = "cmd.exe"; p.StartInfo.CreateNoWindow = true; p.StartInfo.UseShellExecute = false; p.StartInfo.RedirectStandardInput = true; p.StartInfo.RedirectStandardOutput = true; p.Start(); command = "PATH " + nCurrentDir + "\\bin\\Perl\\bin\\;.;" + nCurrentDir + "\\bin\\ChaSen;.;"; p.StandardInput.WriteLine(command); p.StandardInput.WriteLine("exit"); p.WaitForExit(); */ //以上、PATHの処理終わり // カレントディレクトリを表示する //MessageBox.Show(nCurrentDir); // // TODO InitializeComponent 呼び出しの後に、コンストラクタ コードを追加してください。 // } /// summary /// 使用されているリソースに後処理を実行します。 /// /summary protected override void Dispose( bool disposing ) { if( disposing ) { if (components != null) { components.Dispose(); } } base.Dispose( disposing ); } #region Windows フォーム デザイナで生成されたコード /// summary /// デザイナ サポートに必要なメソッドです。このメソッドの内容を /// コード エディタで変更しないでください。 /// /summary private void InitializeComponent() { this.components = new System.ComponentModel.Container(); System.Resources.ResourceManager resources = new System.Resources.ResourceManager(typeof(Form1)); this.pictureBox1 = new System.Windows.Forms.PictureBox(); this.textBox1 = new System.Windows.Forms.TextBox(); this.submit_b = new System.Windows.Forms.Button(); this.richTextBox1 = new System.Windows.Forms.RichTextBox(); this.pictureBox2 = new System.Windows.Forms.PictureBox(); this.pictureBox3 = new System.Windows.Forms.PictureBox(); this.SocialWindow = new System.Windows.Forms.PictureBox(); this.label1 = new System.Windows.Forms.Label(); this.label2 = new System.Windows.Forms.Label(); this.label3 = new System.Windows.Forms.Label(); this.label4 = new System.Windows.Forms.Label(); this.label5 = new System.Windows.Forms.Label(); this.label6 = new System.Windows.Forms.Label(); this.timer1 = new System.Windows.Forms.Timer(this.components); this.cTimer = new System.Windows.Forms.Timer(this.components); this.label7 = new System.Windows.Forms.Label(); this.label8 = new System.Windows.Forms.Label(); this.label9 = new System.Windows.Forms.Label(); this.label10 = new System.Windows.Forms.Label(); this.notifyIcon1 = new System.Windows.Forms.NotifyIcon(this.components); this.label11 = new System.Windows.Forms.Label(); this.name_timer = new System.Windows.Forms.Timer(this.components); this.timer2 = new System.Windows.Forms.Timer(this.components); this.SuspendLayout(); // // pictureBox1 // this.pictureBox1.Image = ((System.Drawing.Image)(resources.GetObject("pictureBox1.Image"))); this.pictureBox1.Location = new System.Drawing.Point(320, -8); this.pictureBox1.Name = "pictureBox1"; this.pictureBox1.Size = new System.Drawing.Size(208, 328); this.pictureBox1.TabIndex = 0; this.pictureBox1.TabStop = false; this.pictureBox1.Click += new System.EventHandler(this.pictureBox1_Click); this.pictureBox1.MouseMove += new System.Windows.Forms.MouseEventHandler(this.Form1_MouseMove); this.pictureBox1.MouseDown += new System.Windows.Forms.MouseEventHandler(this.Form1_MouseDown); // // textBox1 // this.textBox1.ForeColor = System.Drawing.SystemColors.HighlightText; this.textBox1.Location = new System.Drawing.Point(544, 312); this.textBox1.Name = "textBox1"; this.textBox1.Size = new System.Drawing.Size(280, 19); this.textBox1.TabIndex = 0; this.textBox1.Text = "こんにちは。"; this.textBox1.TextChanged += new System.EventHandler(this.textBox1_TextChanged); // // submit_b // this.submit_b.BackColor = System.Drawing.Color.PaleGreen; this.submit_b.ForeColor = System.Drawing.Color.FromArgb(((System.Byte)(0)), ((System.Byte)(64)), ((System.Byte)(0))); this.submit_b.Location = new System.Drawing.Point(736, 344); this.submit_b.Name = "submit_b"; this.submit_b.Size = new System.Drawing.Size(88, 24); this.submit_b.TabIndex = 1; this.submit_b.Text = "submit"; this.submit_b.Click += new System.EventHandler(this.submit_b_Click); // // richTextBox1 // this.richTextBox1.BackColor = System.Drawing.Color.FromArgb(((System.Byte)(255)), ((System.Byte)(128)), ((System.Byte)(64))); this.richTextBox1.BorderStyle = System.Windows.Forms.BorderStyle.None; this.richTextBox1.Cursor = System.Windows.Forms.Cursors.Default; this.richTextBox1.Font = new System.Drawing.Font("MS UI Gothic", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((System.Byte)(128))); this.richTextBox1.ForeColor = System.Drawing.Color.Ivory; this.richTextBox1.Location = new System.Drawing.Point(544, 16); this.richTextBox1.Name = "richTextBox1"; this.richTextBox1.ReadOnly = true; this.richTextBox1.Size = new System.Drawing.Size(432, 192); this.richTextBox1.TabIndex = 0; this.richTextBox1.Text = ""; this.richTextBox1.TextChanged += new System.EventHandler(this.richTextBox1_TextChanged); // // pictureBox2 // this.pictureBox2.Image = ((System.Drawing.Image)(resources.GetObject("pictureBox2.Image"))); this.pictureBox2.Location = new System.Drawing.Point(528, 0); this.pictureBox2.Name = "pictureBox2"; this.pictureBox2.Size = new System.Drawing.Size(472, 240); this.pictureBox2.TabIndex = 5; this.pictureBox2.TabStop = false; // // pictureBox3 // this.pictureBox3.Image = ((System.Drawing.Image)(resources.GetObject("pictureBox3.Image"))); this.pictureBox3.Location = new System.Drawing.Point(512, 280); this.pictureBox3.Name = "pictureBox3"; this.pictureBox3.Size = new System.Drawing.Size(344, 136); this.pictureBox3.TabIndex = 6; this.pictureBox3.TabStop = false; // // SocialWindow // this.SocialWindow.Image = ((System.Drawing.Image)(resources.GetObject("SocialWindow.Image"))); this.SocialWindow.Location = new System.Drawing.Point(0, 0); this.SocialWindow.Name = "SocialWindow"; this.SocialWindow.Size = new System.Drawing.Size(344, 440); this.SocialWindow.TabIndex = 7; this.SocialWindow.TabStop = false; this.SocialWindow.Click += new System.EventHandler(this.SocialWindow_Click); // // label1 // this.label1.BackColor = System.Drawing.Color.FromArgb(((System.Byte)(0)), ((System.Byte)(64)), ((System.Byte)(128))); this.label1.Cursor = System.Windows.Forms.Cursors.Hand; this.label1.Font = new System.Drawing.Font("MS UI Gothic", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((System.Byte)(128))); this.label1.ForeColor = System.Drawing.SystemColors.ControlLightLight; this.label1.Location = new System.Drawing.Point(40, 40); this.label1.Name = "label1"; this.label1.Size = new System.Drawing.Size(184, 16); this.label1.TabIndex = 8; this.label1.Text = "★会話する"; this.label1.Click += new System.EventHandler(this.label1_Click); // // label2 // this.label2.BackColor = System.Drawing.Color.FromArgb(((System.Byte)(0)), ((System.Byte)(64)), ((System.Byte)(128))); this.label2.Cursor = System.Windows.Forms.Cursors.Hand; this.label2.Font = new System.Drawing.Font("MS UI Gothic", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((System.Byte)(128))); this.label2.ForeColor = System.Drawing.SystemColors.ControlLightLight; this.label2.Location = new System.Drawing.Point(40, 64); this.label2.Name = "label2"; this.label2.Size = new System.Drawing.Size(232, 16); this.label2.TabIndex = 9; this.label2.Text = "★ネットワークにアクセスして最新状態を確認"; // // label3 // this.label3.BackColor = System.Drawing.Color.FromArgb(((System.Byte)(0)), ((System.Byte)(64)), ((System.Byte)(128))); this.label3.Cursor = System.Windows.Forms.Cursors.Hand; this.label3.Font = new System.Drawing.Font("MS UI Gothic", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((System.Byte)(128))); this.label3.ForeColor = System.Drawing.SystemColors.ControlLightLight; this.label3.Location = new System.Drawing.Point(40, 88); this.label3.Name = "label3"; this.label3.Size = new System.Drawing.Size(184, 16); this.label3.TabIndex = 10; this.label3.Text = "★作者サイトにアクセス"; this.label3.Click += new System.EventHandler(this.label3_Click); // // label4 // this.label4.BackColor = System.Drawing.Color.FromArgb(((System.Byte)(0)), ((System.Byte)(64)), ((System.Byte)(128))); this.label4.Cursor = System.Windows.Forms.Cursors.Hand; this.label4.Font = new System.Drawing.Font("MS UI Gothic", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((System.Byte)(128))); this.label4.ForeColor = System.Drawing.SystemColors.ControlLightLight; this.label4.Location = new System.Drawing.Point(192, 384); this.label4.Name = "label4"; this.label4.Size = new System.Drawing.Size(40, 16); this.label4.TabIndex = 11; this.label4.Text = "★Halt"; this.label4.Click += new System.EventHandler(this.label4_Click); // // label5 // this.label5.BackColor = System.Drawing.Color.FromArgb(((System.Byte)(0)), ((System.Byte)(64)), ((System.Byte)(128))); this.label5.Cursor = System.Windows.Forms.Cursors.Hand; this.label5.Font = new System.Drawing.Font("MS UI Gothic", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((System.Byte)(128))); this.label5.ForeColor = System.Drawing.SystemColors.ControlLightLight; this.label5.Location = new System.Drawing.Point(192, 360); this.label5.Name = "label5"; this.label5.Size = new System.Drawing.Size(64, 16); this.label5.TabIndex = 12; this.label5.Text = "★アバウト"; this.label5.Click += new System.EventHandler(this.label5_Click); // // label6 // this.label6.BackColor = System.Drawing.Color.FromArgb(((System.Byte)(0)), ((System.Byte)(64)), ((System.Byte)(128))); this.label6.Cursor = System.Windows.Forms.Cursors.Hand; this.label6.Font = new System.Drawing.Font("MS UI Gothic", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((System.Byte)(128))); this.label6.ForeColor = System.Drawing.SystemColors.ControlLightLight; this.label6.Location = new System.Drawing.Point(40, 112); this.label6.Name = "label6"; this.label6.Size = new System.Drawing.Size(232, 16); this.label6.TabIndex = 13; this.label6.Text = "★バグ・要望を作者に送る"; this.label6.Click += new System.EventHandler(this.label6_Click); // // timer1 // this.timer1.Enabled = true; this.timer1.Interval = 5000; this.timer1.Tick += new System.EventHandler(this.timer1_Tick); // // cTimer // this.cTimer.Interval = 15000; this.cTimer.Tick += new System.EventHandler(this.cTimer_Tick); // // label7 // this.label7.BackColor = System.Drawing.Color.FromArgb(((System.Byte)(0)), ((System.Byte)(64)), ((System.Byte)(128))); this.label7.Cursor = System.Windows.Forms.Cursors.Hand; this.label7.Font = new System.Drawing.Font("MS UI Gothic", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((System.Byte)(128))); this.label7.ForeColor = System.Drawing.SystemColors.ControlLightLight; this.label7.Location = new System.Drawing.Point(40, 136); this.label7.Name = "label7"; this.label7.Size = new System.Drawing.Size(232, 16); this.label7.TabIndex = 14; this.label7.Text = "★ふきだしバルーンを閉じる"; this.label7.Click += new System.EventHandler(this.label7_Click); // // label8 // this.label8.BackColor = System.Drawing.Color.FromArgb(((System.Byte)(0)), ((System.Byte)(64)), ((System.Byte)(128))); this.label8.Cursor = System.Windows.Forms.Cursors.Hand; this.label8.Font = new System.Drawing.Font("MS UI Gothic", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((System.Byte)(128))); this.label8.ForeColor = System.Drawing.SystemColors.ControlLightLight; this.label8.Location = new System.Drawing.Point(192, 312); this.label8.Name = "label8"; this.label8.Size = new System.Drawing.Size(120, 16); this.label8.TabIndex = 15; this.label8.Text = "★Windowsの再起動"; this.label8.Click += new System.EventHandler(this.label8_Click); // // label9 // this.label9.BackColor = System.Drawing.Color.FromArgb(((System.Byte)(0)), ((System.Byte)(64)), ((System.Byte)(128))); this.label9.Cursor = System.Windows.Forms.Cursors.Hand; this.label9.Font = new System.Drawing.Font("MS UI Gothic", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((System.Byte)(128))); this.label9.ForeColor = System.Drawing.SystemColors.ControlLightLight; this.label9.Location = new System.Drawing.Point(192, 336); this.label9.Name = "label9"; this.label9.Size = new System.Drawing.Size(96, 16); this.label9.TabIndex = 16; this.label9.Text = "★Windowsの終了"; this.label9.Click += new System.EventHandler(this.label9_Click); // // label10 // this.label10.BackColor = System.Drawing.Color.FromArgb(((System.Byte)(0)), ((System.Byte)(64)), ((System.Byte)(128))); this.label10.Cursor = System.Windows.Forms.Cursors.Hand; this.label10.Font = new System.Drawing.Font("MS UI Gothic", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((System.Byte)(128))); this.label10.ForeColor = System.Drawing.SystemColors.ControlLightLight; this.label10.Location = new System.Drawing.Point(40, 160); this.label10.Name = "label10"; this.label10.Size = new System.Drawing.Size(232, 16); this.label10.TabIndex = 17; this.label10.Text = "★タスクトレイに格納する"; this.label10.Click += new System.EventHandler(this.label10_Click); // // notifyIcon1 // this.notifyIcon1.Icon = ((System.Drawing.Icon)(resources.GetObject("notifyIcon1.Icon"))); this.notifyIcon1.Text = "気分はいつもグルグル"; this.notifyIcon1.Visible = true; this.notifyIcon1.MouseDown += new System.Windows.Forms.MouseEventHandler(this.notifyIcon1_MouseDown); // // label11 // this.label11.BackColor = System.Drawing.Color.FromArgb(((System.Byte)(0)), ((System.Byte)(64)), ((System.Byte)(128))); this.label11.Cursor = System.Windows.Forms.Cursors.Hand; this.label11.Font = new System.Drawing.Font("MS UI Gothic", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((System.Byte)(128))); this.label11.ForeColor = System.Drawing.SystemColors.ControlLightLight; this.label11.Location = new System.Drawing.Point(40, 184); this.label11.Name = "label11"; this.label11.Size = new System.Drawing.Size(232, 16); this.label11.TabIndex = 18; this.label11.Text = "★スレッドのON/OFF"; this.label11.Click += new System.EventHandler(this.label11_Click); // // name_timer // this.name_timer.Enabled = true; this.name_timer.Interval = 1000; this.name_timer.Tick += new System.EventHandler(this.name_timer_Tick); // // timer2 // this.timer2.Enabled = true; this.timer2.Interval = 15000; this.timer2.Tick += new System.EventHandler(this.timer2_Tick); // // Form1 // this.AcceptButton = this.submit_b; this.AutoScaleBaseSize = new System.Drawing.Size(5, 12); this.BackColor = System.Drawing.Color.Blue; this.ClientSize = new System.Drawing.Size(1008, 440); this.ControlBox = false; this.Controls.Add(this.label11); this.Controls.Add(this.label10); this.Controls.Add(this.label9); this.Controls.Add(this.label8); this.Controls.Add(this.label7); this.Controls.Add(this.richTextBox1); this.Controls.Add(this.label6); this.Controls.Add(this.label5); this.Controls.Add(this.label4); this.Controls.Add(this.label3); this.Controls.Add(this.label2); this.Controls.Add(this.label1); this.Controls.Add(this.SocialWindow); this.Controls.Add(this.submit_b); this.Controls.Add(this.textBox1); this.Controls.Add(this.pictureBox3); this.Controls.Add(this.pictureBox1); this.Controls.Add(this.pictureBox2); this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None; this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); this.MaximizeBox = false; this.MinimizeBox = false; this.Name = "Form1"; this.ShowInTaskbar = false; this.Text = "ieee1421.2c"; this.Load += new System.EventHandler(this.Form1_Load); this.ResumeLayout(false); } #endregion /// summary /// アプリケーションのメイン エントリ ポイントです。 [DllImport("kernel32.dll")] extern static void GlobalMemoryStatus(ref tagMEMORYSTATUS lpBuffer) ; //******user32.dllの読み込み [DllImport("user32.dll")] extern static IntPtr GetForegroundWindow() ; [DllImport("user32.dll")] extern static int GetWindowText(IntPtr hWnd, StringBuilder lpStr, int nMaxCount) ; [DllImport("User32.Dll")] extern static void SetWindowText(IntPtr hWn, StringBuilder lpStr); //*****user32.dllの読み込み終わり public struct tagMEMORYSTATUS { public int dwLength ; public int dwMemoryLoad ; public int dwTotalPhys ; // 合計 物理メモリ public int dwAvailPhys ; // 空き 物理メモリ public int dwTotalPageFile ; // 合計 ページファイル public int dwAvailPageFile ; // 空き ページファイル public int dwTotalVirtual ; // 合計 仮想メモリ(2GB 固定?) public int dwAvailVirtual ; // 空き 仮想メモリ } /// /summary [STAThread] static void Main() { if (! PrevInstance()) { Application.Run(new Form1()); } else { MessageBox.Show("二重起動は推奨されません。\n理由はファイルの競合が発生するからです。\nどうしても二重起動したい場合は違うディレクトリにコピーして起動してください。"); } } private void Form1_Load(object sender, System.EventArgs e) { //*****オーバーレイの調整 this.SetStyle( ControlStyles.DoubleBuffer | // 描画をバッファで実行する ControlStyles.UserPaint | // 描画は(OSでなく)独自に行う ControlStyles.AllPaintingInWmPaint, // WM_ERASEBKGND を無視する true // 指定したスタイルを適用「する」 ) ; //*****オーバーレイの調整終わり //***PerlディレクトリとChaSenディレクトリが存在しているかどうか確認する //PATHの設定 //***機能ボックスの初期化 this.pictureBox3.Visible=!true; this.textBox1.Visible=!true; this.submit_b.Visible=!true; this.richTextBox1.Visible=!true; this.pictureBox2.Visible=!true; //***フォーカスが移動しないようにする // textBox1 が [Tab] キーによってフォーカス遷移しないようにする this.textBox1.TabStop = false; //フォームのある一定の色を透明にする this.TransparencyKey = Color.Blue;//青 (システム定義色による指定) /* ((Bitmap)pictureBox1.Image).MakeTransparent(Color.Blue); ((Bitmap)pictureBox2.Image).MakeTransparent(Color.Blue); ((Bitmap)pictureBox3.Image).MakeTransparent(Color.Blue); ((Bitmap)SocialWindow.Image).MakeTransparent(Color.Blue); pictureBox1.Refresh(); pictureBox2.Refresh(); pictureBox3.Refresh(); SocialWindow.Refresh(); */ //this.TransparencyKey = Color.FromArgb(0x00, 0x00, 0xFF); //青 (RGB による指定) // 解除する場合 //this.AllowTransparency = false; //*****Pathの設定(有効でないときがある、原因不明) p = new System.Diagnostics.Process(); p.StartInfo.FileName = "cmd.exe"; p.StartInfo.CreateNoWindow = true; p.StartInfo.UseShellExecute = false; p.StartInfo.RedirectStandardInput = true; p.StartInfo.RedirectStandardOutput = true; p.Start(); //***茶せんのパスを設定 command = "path=%PATH%;" + nCurrentDir + "\\Chasen"; p.StandardInput.WriteLine(command); //***PsToolsの設定 command = "path=%PATH%;" + nCurrentDir + "\\PsTool"; p.StandardInput.WriteLine(command); p.StandardInput.WriteLine("exit"); p.WaitForExit(); //MessageBox.Show(nCurrentDir); //*****Pathの設定終わり //*****プロセスコントローラの読み出し string tmpMachineName= GetMachineName(); objPcsCrtlMgr=new ProcessControllerManager(lstPcsRun,lstPcs,tmpMachineName); //****タイマーのイニシャライズ timer1.Start(); } private void Form1_Click(object sender, System.Windows.Forms.MouseEventArgs e) { if(e.Button == MouseButtons.Left) { /* 左 ボタンの処理 */ m_x=System.Windows.Forms.Cursor.Position.X; m_y=System.Windows.Forms.Cursor.Position.Y; this.SetDesktopLocation(m_x-150, m_y-200); } else if (e.Button == MouseButtons.Right) { /* 右 ボタンの処理 */ } else if (e.Button == MouseButtons.Middle) { /* 中央ボタンの処理 */ } } private void Form1_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e) { if ((e.Button MouseButtons.Left) == MouseButtons.Left) { //左クリックの場合のみ位置を記憶 mMousePoint = new Point(-e.X, -e.Y); } m_down=true; } private void Form1_MouseMove(object sender, System.Windows.Forms.MouseEventArgs e) { if ((e.Button MouseButtons.Left) == MouseButtons.Left) { //フォームの移動 this.SetDesktopLocation(this.Left + mMousePoint.X + e.X, this.Top + mMousePoint.Y + e.Y); } if(m_down==true) { m_drag=true; } } private void pictureBox1_MouseMove() { } private void Form1_Closed(object sender, System.EventArgs e) { // 終了時、「すぐに」アイコンを消す (念のため) this.notifyIcon1.Visible = false ; } private void pictureBox1_Click(object sender, System.EventArgs e) { if(m_drag==!true) { //SocialWindowを表示する if(this.SocialWindow.Visible==true) { this.SocialWindow.Visible=!true; this.label1.Visible=!true; this.label2.Visible=!true; this.label3.Visible=!true; this.label4.Visible=!true; this.label5.Visible=!true; this.label6.Visible=!true; this.label7.Visible=!true; this.label8.Visible=!true; this.label9.Visible=!true; this.label10.Visible=!true; this.label11.Visible=!true; this.label1.Refresh(); this.label2.Refresh(); this.label3.Refresh(); this.label4.Refresh(); this.label5.Refresh(); this.label6.Refresh(); this.label7.Refresh(); this.label8.Refresh(); this.label9.Refresh(); this.label10.Refresh(); } else { this.SocialWindow.Visible=true; this.label1.Visible=true; this.label2.Visible=true; this.label3.Visible=true; this.label4.Visible=true; this.label5.Visible=true; this.label6.Visible=true; this.label7.Visible=true; this.label8.Visible=true; this.label9.Visible=true; this.label10.Visible=true; this.label11.Visible=true; this.label1.Refresh(); this.label2.Refresh(); this.label3.Refresh(); this.label4.Refresh(); this.label5.Refresh(); this.label6.Refresh(); this.label7.Refresh(); this.label8.Refresh(); this.label9.Refresh(); this.label10.Refresh(); this.label11.Refresh(); } } m_drag=false; m_down=false; //フォームの位置を変更する //マウスの座標をゲットする /* m_x=System.Windows.Forms.Cursor.Position.X; m_y=System.Windows.Forms.Cursor.Position.Y; this.SetDesktopLocation(m_x-150, m_y-200); */ } private void textBox1_TextChanged(object sender, System.EventArgs e) { } private void submit_b_Click(object sender, System.EventArgs e) { if(textBox1.Text== "\\e" | textBox1.Text== "exit" ) { richTextBox1.Text = "会話を終了しますー。\n" + richTextBox1.Text; richTextBox1.Refresh(); System.Threading.Thread.Sleep(1000); this.richTextBox1.Visible=!true; this.pictureBox2.Visible=!true; this.pictureBox3.Visible=!true; this.textBox1.Visible=!true; this.submit_b.Visible=!true; } else { iTxt=textBox1.Text; //***リッチテキストの表示 this.richTextBox1.Visible=true; this.pictureBox2.Visible=true; this.richTextBox1.Refresh(); this.pictureBox2.Refresh(); //C#で最初に文字をふるいにかける localString(); if(t2c==1) { //outputFile oFile(); //以下、chasenの起動ルーチン p = new System.Diagnostics.Process(); p.StartInfo.FileName = "cmd.exe"; p.StartInfo.CreateNoWindow = true; p.StartInfo.UseShellExecute = false; p.StartInfo.RedirectStandardInput = true; p.StartInfo.RedirectStandardOutput = true; p.Start(); command = "chasen -o oFile_ch oFile"; p.StandardInput.WriteLine(command); p.StandardInput.WriteLine("exit"); p.WaitForExit(); //以上、chasenの処理終わり //以下、perlで文章を生成 p = new System.Diagnostics.Process(); p.StartInfo.FileName = "cmd.exe"; p.StartInfo.CreateNoWindow = true; p.StartInfo.UseShellExecute = false; p.StartInfo.RedirectStandardInput = true; p.StartInfo.RedirectStandardOutput = true; p.Start(); command = "perl kernel.pl"; p.StandardInput.WriteLine(command); p.StandardInput.WriteLine("exit"); p.WaitForExit(); //以上、perlで文章を生成 //inputFile iFile(); t2c=0; } else { } //入力ボックスのクリア textBox1.Text=""; } } //***********以下サブルーチン //****ファイル書き出しサブルーチン void oFile() { // hStream が破棄されることを保証するために using を使用する // 指定したパスのファイルを作成する using (System.IO.FileStream hStream = System.IO.File.Create(@nCurrentDir + "\\oFile")) { // 作成時に返される FileStream を利用して閉じる if (hStream != null) { hStream.Close(); } } System.IO.StreamWriter wrt; wrt = new System.IO.StreamWriter(@nCurrentDir + "\\oFile", false, System.Text.Encoding.Default); wrt.WriteLine(textBox1.Text); wrt.Close(); } //****ファイル読み込みサブルーチン void iFile() { // StreamReader の新しいインスタンスを生成する System.IO.StreamReader hReader = (new System.IO.StreamReader(@nCurrentDir + "\\iFile", System.Text.Encoding.Default)); // ファイルの最後まで読み込む string nPrompt = hReader.ReadToEnd(); // hReader を閉じる (正しくは オブジェクトの破棄を保証する を参照) hReader.Close(); // 結果を表示する richTextBox1.Text = nPrompt + richTextBox1.Text; } //******C#で処理できる文章を扱うところ void localString() {//C#での基本文字処理 if((iTxt!=iTxt.Replace("氏ね",""))|(iTxt!=iTxt.Replace("死ね",""))|(iTxt!=iTxt.Replace("シネ",""))|(iTxt!=iTxt.Replace("くたばれ",""))|(iTxt!=iTxt.Replace("ちんこ",""))|(iTxt!=iTxt.Replace("チンコ",""))||(iTxt!=iTxt.Replace("チンコ",""))|(iTxt!=iTxt.Replace("まんこ",""))|(iTxt!=iTxt.Replace("マンコ",""))|(iTxt!=iTxt.Replace("マンコ",""))|(iTxt!=iTxt.Replace("うんこ",""))|(iTxt!=iTxt.Replace("ウンコ",""))|(iTxt!=iTxt.Replace("ウンコ",""))|(iTxt!=iTxt.Replace("うんち",""))|(iTxt!=iTxt.Replace("ウンチ",""))|(iTxt!=iTxt.Replace("ウンチ",""))|(iTxt!=iTxt.Replace("ちんぽ",""))|(iTxt!=iTxt.Replace("キンタマ",""))|(iTxt!=iTxt.Replace("きんたま",""))) { richTextBox1.Text = "第1級禁止ワードが含まれています。あなたの発言は認識されませんでした。\n" + richTextBox1.Text; } else if((iTxt!=iTxt.Replace("オナニー",""))|(iTxt!=iTxt.Replace("オナニー",""))|(iTxt!=iTxt.Replace("オメコ",""))|(iTxt!=iTxt.Replace("おめこ",""))) { richTextBox1.Text = "第2級禁止ワードが含まれています。あなたの発言は認識されませんでした。\n" + richTextBox1.Text; } else if((iTxt!=iTxt.Replace("セックス",""))|(iTxt!=iTxt.Replace("セックス",""))|(iTxt!=iTxt.Replace("キチガイ",""))) { richTextBox1.Text = "第3級禁止ワードが含まれています。あなたの発言は認識されませんでした。\n" + richTextBox1.Text; } //**時間、日付、年などを聞かれたとき if((iTxt!=iTxt.Replace("何時?",""))|(iTxt!=iTxt.Replace("時間を教えて",""))|(iTxt!=iTxt.Replace("何曜日",""))|(iTxt!=iTxt.Replace("何日",""))) { // 現在の日付と時刻を取得する DateTime dtNow = DateTime.Now; // 取得した日付と時刻を表示する richTextBox1.Text = dtNow.ToString() + "ですよ。\n" + richTextBox1.Text; return; } //**ieeeってなにって聞かれたとき if((iTxt!=iTxt.Replace("ieeeって?",""))|(iTxt!=iTxt.Replace("ieeeって",""))|(iTxt!=iTxt.Replace("ieeeとは?",""))|(iTxt!=iTxt.Replace("ieeeとは何","")) | iTxt=="ieee" ) { richTextBox1.Text = "Institute of Electrical and Electronic Engineersのことですよ。\nちなみに、私はバーチャル規格なので実在しないナンバーを使っています。\n" + richTextBox1.Text; return; } //****C#での正規表現 //**ieee1421を聞かれたとき。 Match iMatch; iMatch = Regex.Match(iTxt,"ieee1421"); if(iMatch.Success == true ) { richTextBox1.Text = "わたしのナンバリングはお兄ちゃんが適当につけたものです、特に深い意味はありません。\n" + richTextBox1.Text; } if(iTxt.EndsWith("。")|iTxt.EndsWith("?")) { t2c=1; } else { richTextBox1.Text = "文章の解析が難しくなるので、文末には必ず「。」か「?」をつけてください。\n" + richTextBox1.Text; } } //****ふきだしのリフレッシュ void Refresh_hukidasi() { this.richTextBox1.Visible=true; this.pictureBox2.Visible=true; this.richTextBox1.Refresh(); this.pictureBox2.Refresh(); } //****特に機能なし private void SocialWindow_Click(object sender, System.EventArgs e) { } //****会話モードにチェンジ private void label1_Click(object sender, System.EventArgs e) { this.pictureBox3.Visible=true; this.textBox1.Visible=true; this.submit_b.Visible=true; this.richTextBox1.Visible=true; this.pictureBox2.Visible=true; //***最初の会話のイニシャライズ } //****このアプリの終了受付 private void label4_Click(object sender, System.EventArgs e) { // 必要な変数を宣言する DateTime tNow = DateTime.Now; // 0 以上 512 未満の乱数を取得する int iRnd = hRandom.Next(512); //表示をリフレッシュ this.pictureBox2.Visible=true; this.pictureBox2.Refresh(); this.richTextBox1.Visible=true; if(giHour==tNow.Hour ((tNow.Minute-giMinute) 2)) { if(iRnd =256) { richTextBox1.Text = "この数分のために呼び出されるこっちの身にもなってみてくださいっ!\n"; } else { richTextBox1.Text = "わたしの起動時間が異常に短いです~。・・・もしかして、わたしをハックしています?いやぁ~ん。\n"; } } else if(giHour==tNow.Hour ((tNow.Minute-giMinute) 4)) { if(iRnd =256) { richTextBox1.Text = "あぁ~、もうお別れですか・・・さびしいです~。\n"; } else { richTextBox1.Text = "短い間でしたけどお役に立てて幸いです。また、わたしを起動してくださいね!\n"; } } else { if(iRnd =256) { richTextBox1.Text = "では、さようならです~。\n"; } else { richTextBox1.Text = "ぐっとらっく!です~。また、わたしを起動したらきっといいことがありますよ~。\n"; } } richTextBox1.Refresh(); notifyIcon1.Visible=false; System.Threading.Thread.Sleep(3000); //***フェードアウトさせる /* for (int i=100; i = 0; i--) { //フォームのある一定の色を透明にする //this.TransparencyKey = Color.Blue;//うまくいかなかった this.TransparencyKey = Color.Blue; ((Bitmap)pictureBox1.Image).MakeTransparent(Color.Blue); ((Bitmap)pictureBox2.Image).MakeTransparent(Color.Blue); ((Bitmap)pictureBox3.Image).MakeTransparent(Color.Blue); ((Bitmap)SocialWindow.Image).MakeTransparent(Color.Blue); pictureBox1.Refresh(); pictureBox2.Refresh(); pictureBox3.Refresh(); SocialWindow.Refresh(); this.Opacity = (double)i / 100; this.TransparencyKey = Color.Blue; ((Bitmap)pictureBox1.Image).MakeTransparent(Color.Blue); ((Bitmap)pictureBox2.Image).MakeTransparent(Color.Blue); ((Bitmap)pictureBox3.Image).MakeTransparent(Color.Blue); ((Bitmap)SocialWindow.Image).MakeTransparent(Color.Blue); pictureBox1.Refresh(); pictureBox2.Refresh(); pictureBox3.Refresh(); SocialWindow.Refresh(); } */ Application.Exit(); } //****タイムストップ時間の確定 void TmSt(int gTime) { System.Threading.Thread.Sleep(gTime); } //****goto無線権研のHP private void label3_Click(object sender, System.EventArgs e) { System.Diagnostics.Process.Start("http //www.ed.kagu.tus.ac.jp/~musen1/proghp/main.html"); } //****アバウトディス private void label5_Click(object sender, System.EventArgs e) { // タイトルバーのテキストを指定する MessageBox.Show("人工無脳Noel ver0.12 by project M.A.Y.U", "このアプリについて"); } //****メールの送信 private void label6_Click(object sender, System.EventArgs e) { System.Diagnostics.Process.Start("mailto gink03@yahoo.co.jp"+"?"+"subject=バグ・要望のお知らせ"); } //****二重起動を禁止する public static bool PrevInstance() { // このアプリケーションのプロセス名を取得 string nThisProcess = System.Diagnostics.Process.GetCurrentProcess().ProcessName; // 同名のプロセスが他に存在した場合は、既に起動していると判断する if (System.Diagnostics.Process.GetProcessesByName(nThisProcess).Length 1) { return true; } // 存在しない場合は False を返す return false; } //****ほかのプロセスの監視 private void timer1_Tick(object sender, System.EventArgs e) { //***起動時のメモリ残量のチェック if(gBool[50]==false) { Refresh_hukidasi(); tagMEMORYSTATUS ms = new tagMEMORYSTATUS() ; ms.dwLength = Marshal.SizeOf(ms) ; // 準備 GlobalMemoryStatus(ref ms) ; // メモリ情報を取得 richTextBox1.Text = "起動チェック・・・\n" + richTextBox1.Text; richTextBox1.Refresh(); TmSt(50); richTextBox1.Text = "合計物理メモリ=" + ms.dwTotalPhys.ToString("n0") + " Byte\r\n"+ richTextBox1.Text; richTextBox1.Text = "空き物理メモリ=" + ms.dwAvailPhys.ToString("n0") + " Byte\r\n"+ richTextBox1.Text; richTextBox1.Refresh(); OperatingSystem os_ver = Environment.OSVersion ; richTextBox1.Text = "プラットフォーム=" + os_ver.ToString() + " \r\n"+ richTextBox1.Text; TmSt(75); if(ms.dwAvailPhys =10000000) { richTextBox1.Text = "うぅ・・・狭いです・・・もっとメモリを・・・メモリをください・・・\n"+ richTextBox1.Text; } else if(ms.dwAvailPhys =100000000) { richTextBox1.Text = "ちょっと狭いですけど、何とかやっていけそうです。\n"+ richTextBox1.Text; } else if(ms.dwAvailPhys =200000000) { richTextBox1.Text = "十分なメモリが確保できました。お世話になりますね♪\n"+ richTextBox1.Text; } else if(ms.dwAvailPhys =500000000) { richTextBox1.Text= "十分すぎるメモリが確保できました。お世話になりますね♪\n"+ richTextBox1.Text; } else { richTextBox1.Text= "あぅー・・・あなたのパソコンは広すぎます~。わたし、広場恐怖症なんですよ~。\n"+ richTextBox1.Text; } //***ちよパパを展開 // subForm の新しいインスタンスを生成する subForm Form2 = new subForm();//############################################################################## // Form2 を表示する Form2.Show();//##################################################################################### this.AddOwnedForm(Form2);//######################################################################################################################################## //***ちよパパ展開終わり gBool[50]=true; return; } //***設定ファイルの読み込み if(gBool[51]==false) { System.IO.StreamReader hReader = (new System.IO.StreamReader(@nCurrentDir + "\\Muno.ini", System.Text.Encoding.Default)); string initTxt = hReader.ReadToEnd(); hReader.Close(); if(initTxt.Substring(0,1)=="1") { gBool[52]=true; } //MessageBox.Show("テキスト" + initTxt.Substring(0,1)); gBool[51]=true; } if(gBool[52]==true) { //****他プロセスの監視と干渉 // Explorer という名前のプロセスをすべて取得する System.Diagnostics.Process[] hProcesses = System.Diagnostics.Process.GetProcessesByName("Explorer"); string nPrompt = string.Empty; foreach (System.Diagnostics.Process hProcess in hProcesses) { nPrompt += hProcess.Id + System.Environment.NewLine; } //取得できたすべてのプロセス ID を表示する if ((nPrompt==string.Empty) (gBool[0]=!true)) { richTextBox1.Text = "エクスプローラすらも起動しないで何をしているんですか?\n" + richTextBox1.Text; gBool[0]=true; return; } //**winnyの起動状況のチェック hProcesses = System.Diagnostics.Process.GetProcessesByName("winny"); nPrompt = string.Empty; foreach (System.Diagnostics.Process hProcess in hProcesses) { nPrompt += hProcess.Id + System.Environment.NewLine; } if (nPrompt!=string.Empty gBool[1]!=true) { richTextBox1.Text = "Winnyを起動していますね。違法行為はダメですよ。\n" + richTextBox1.Text; Refresh_hukidasi(); gBool[1]=true; return; } //**winnypの起動状況のチェック hProcesses = System.Diagnostics.Process.GetProcessesByName("winnyp"); nPrompt = string.Empty; foreach (System.Diagnostics.Process hProcess in hProcesses) { nPrompt += hProcess.Id + System.Environment.NewLine; } if (nPrompt!=string.Empty gBool[2]!=true) { richTextBox1.Text = "Winnypを起動していますね。lark氏はわたしの最も尊敬しているハッカーの1人です。(英語を日本語に直訳したときみたいw)\n" + richTextBox1.Text; Refresh_hukidasi(); gBool[2]=true; return; } //**Shareの起動状況のチェック hProcesses = System.Diagnostics.Process.GetProcessesByName("Share"); nPrompt = string.Empty; foreach (System.Diagnostics.Process hProcess in hProcesses) { nPrompt += hProcess.Id + System.Environment.NewLine; } if (nPrompt!=string.Empty gBool[3]!=true) { richTextBox1.Text = "Share…Delphiでここまで完成度の高いアプリってなかなかないですよね。すごいと思います。尊敬~。\n" + richTextBox1.Text; Refresh_hukidasi(); gBool[3]=true; return; } //**Firefoxの起動状況のチェック hProcesses = System.Diagnostics.Process.GetProcessesByName("firefox"); nPrompt = string.Empty; foreach (System.Diagnostics.Process hProcess in hProcesses) { nPrompt += hProcess.Id + System.Environment.NewLine; } if (nPrompt!=string.Empty gBool[4]!=true) { richTextBox1.Text = "Firefoxってすごいと思います。Geckoエンジンは時にIEエンジンすらも上回るときがありますから~。\n" + richTextBox1.Text; //***Firefoxのタイトルの変更(可能ならば) //MessageBox.Show(hProcesses.ToString()); Refresh_hukidasi(); gBool[4]=true; return; } //**Tabletの起動状況のチェック hProcesses = System.Diagnostics.Process.GetProcessesByName("Tablet"); nPrompt = string.Empty; foreach (System.Diagnostics.Process hProcess in hProcesses) { nPrompt += hProcess.Id + System.Environment.NewLine; } if (nPrompt!=string.Empty gBool[5]!=true) { richTextBox1.Text = "タブレットハケ~ン!もしかして、絵師さんですか?わたしは絵が下手なので教えて欲しいです~。\n" + richTextBox1.Text; Refresh_hukidasi(); gBool[5]=true; return; } //**nSvcAppFltの起動状況のチェック hProcesses = System.Diagnostics.Process.GetProcessesByName("nSvcAppFlt"); nPrompt = string.Empty; foreach (System.Diagnostics.Process hProcess in hProcesses) { nPrompt += hProcess.Id + System.Environment.NewLine; } if (nPrompt!=string.Empty gBool[6]!=true) { richTextBox1.Text = "nVidiaユーザですか、ハイエンド志向?ここからじゃ、わかりません~。\n" + richTextBox1.Text; Refresh_hukidasi(); gBool[6]=true; return; } //**ATiの起動状況のチェック hProcesses = System.Diagnostics.Process.GetProcessesByName("atiptaxx"); nPrompt = string.Empty; foreach (System.Diagnostics.Process hProcess in hProcesses) { nPrompt += hProcess.Id + System.Environment.NewLine; } if (nPrompt!=string.Empty gBool[7]!=true) { richTextBox1.Text = "ATiユーザですか。お兄ちゃんもRadeon X300ですが、使ってます。・・・やっぱりへちょいですよね?\n" + richTextBox1.Text; Refresh_hukidasi(); gBool[7]=true; return; } //**伺かの起動状況のチェック hProcesses = System.Diagnostics.Process.GetProcessesByName("materia"); nPrompt = string.Empty; foreach (System.Diagnostics.Process hProcess in hProcesses) { nPrompt += hProcess.Id + System.Environment.NewLine; } if (nPrompt!=string.Empty gBool[8]!=true) { richTextBox1.Text = "うわっ!「伺か」さんがいます!彼女(達)とはまったく別のカーネルなので、同時起動には問題ないですけど・・・やっぱり、居心地悪いです、「Kill」してもいいですか?\n" + richTextBox1.Text; richTextBox1.Refresh(); TmSt(2000); richTextBox1.Text = "はぁはぁ・・・わたし、殺りますっ!!\n" + richTextBox1.Text; richTextBox1.Refresh(); TmSt(5000); //***ターゲットプロセスを終了する //以下、materiaを強制終了 p = new System.Diagnostics.Process(); p.StartInfo.FileName = "cmd.exe"; p.StartInfo.CreateNoWindow = true; p.StartInfo.UseShellExecute = false; p.StartInfo.RedirectStandardInput = true; p.StartInfo.RedirectStandardOutput = true; p.Start(); command = "pskill materia.exe"; p.StandardInput.WriteLine(command); p.StandardInput.WriteLine("exit"); p.WaitForExit(); //以上、materiaを強制終了 TmSt(5000); richTextBox1.Text = "ふぅ~・・・すっきりした~!\n" + richTextBox1.Text; Refresh_hukidasi(); gBool[8]=true; return; } }//*****以上がプロセス干渉、低次元・・・ } //****リッチテキストの変化を監視 private void richTextBox1_TextChanged(object sender, System.EventArgs e) { this.cTimer.Dispose(); this.cTimer.Start(); gTxt=this.richTextBox1.Text; //***フォーカスをtextbox1に返す this.textBox1.Focus(); } //****ふきだしを15秒変化がなかったら閉じる private void cTimer_Tick(object sender, System.EventArgs e) { if(gTxt==richTextBox1.Text) { this.richTextBox1.Clear(); this.richTextBox1.Visible=false; this.pictureBox2.Visible=false; this.richTextBox1.Refresh(); this.pictureBox2.Refresh(); } this.cTimer.Enabled=false; } //****バルーンを閉じる private void label7_Click(object sender, System.EventArgs e) { this.richTextBox1.Visible=false; this.pictureBox2.Visible=false; this.richTextBox1.Refresh(); this.pictureBox2.Refresh(); } private void label9_Click(object sender, System.EventArgs e) { if (MessageBox.Show( "本当に終了しちゃうよ?", "最終確認", MessageBoxButtons.YesNo, // ボタンの一覧は MessageBoxButtons 参照 MessageBoxIcon.Question // アイコンの一覧は MessageBoxIcon 参照 ) == DialogResult.Yes) { /* [はい] ボタンの処理 */ //以下、Windowsを終了 p = new System.Diagnostics.Process(); p.StartInfo.FileName = "cmd.exe"; p.StartInfo.CreateNoWindow = true; p.StartInfo.UseShellExecute = false; p.StartInfo.RedirectStandardInput = true; p.StartInfo.RedirectStandardOutput = true; p.Start(); command = "shutdown -s -t 3 -f -c \"即効で終了させます!\" "; p.StandardInput.WriteLine(command); p.StandardInput.WriteLine("exit"); p.WaitForExit(); //以上、Windowsを終了 } } private void label8_Click(object sender, System.EventArgs e) { if (MessageBox.Show( "本当に再起動しちゃうよ?", "最終確認", MessageBoxButtons.YesNo, // ボタンの一覧は MessageBoxButtons 参照 MessageBoxIcon.Question // アイコンの一覧は MessageBoxIcon 参照 ) == DialogResult.Yes) { /* [はい] ボタンの処理 */ //以下、Windowsを再起動 p = new System.Diagnostics.Process(); p.StartInfo.FileName = "cmd.exe"; p.StartInfo.CreateNoWindow = true; p.StartInfo.UseShellExecute = false; p.StartInfo.RedirectStandardInput = true; p.StartInfo.RedirectStandardOutput = true; p.Start(); command = "shutdown -r -t 3 -f -c \"即効で再起動させます!\" "; p.StandardInput.WriteLine(command); p.StandardInput.WriteLine("exit"); p.WaitForExit(); //以上、Windowsを再起動 } } private void label10_Click(object sender, System.EventArgs e) { this.Hide() ; notifyIcon1.Text="出してください~。"; } private void notifyIcon1_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e) { this.Show() ; notifyIcon1.Text="人生に疲れを感じている今日この頃。"; } //タイマーの切り替え private void label11_Click(object sender, System.EventArgs e) { if(timer1.Enabled==true) { timer1.Enabled=false; } else { timer1.Enabled=true; } } private void name_timer_Tick(object sender, System.EventArgs e) { //フォームのある一定の色を透明にする(リフレッシュとして) this.TransparencyKey = Color.Blue;//青 (システム定義色による指定) // 0 以上 512 未満の乱数を取得する int iRnd = hRandom.Next(512); if(iRnd =265) { /* if(iRnd =1) { notifyIcon1.Text="最近、運気が足りない気がします。"; } else if(iRnd =10) { notifyIcon1.Text="あずまんが大王のちよちゃんよりは大阪派です。"; } else if(iRnd =15) { notifyIcon1.Text="お兄ちゃんはいまだにドラえもんの新しい声優さんに慣れません。"; } else if(iRnd =20) { notifyIcon1.Text="お兄ちゃんがHMX-12を作るとしたら、記憶媒体にNAND型フラッシュメモリを採用します。"; } else if(iRnd =23) { notifyIcon1.Text="ATiってカナダの会社ですよね。デジタル表示がMatrox並にきれいで驚きました。"; } else if(iRnd =25) { notifyIcon1.Text="ARMプロセッサはNintendoDSに使われてるんですよ。任天堂は売国奴ですね。ルネサスのSH使えばいいのに・・・"; } else if(iRnd =30) { notifyIcon1.Text="風邪薬のパブロンは風邪を長引かせます。たぶん。"; } else if(iRnd =35) { notifyIcon1.Text="うにゅうみたいな大阪弁をしゃべるやつを観たら殺ります。たぶん。"; } else if(iRnd =40) { notifyIcon1.Text="ガンソードのエルドラⅤはガオガイガーにそっくり。たぶん。"; } else if(iRnd =45) { notifyIcon1.Text="地獄少女の閻魔あいちゃんは志摩子さんのノリにそっくり。たぶん。"; } else if(iRnd =50) { notifyIcon1.Text="二十歳未満の死亡者の死因のトップは喘息だそうです。"; } else if(iRnd =55) { notifyIcon1.Text="PowerPCを使ったPCが欲しいです。誰か作って。"; } else if(iRnd =60) { notifyIcon1.Text="AMDの収益率はIntelの50分の1なんだって。AMDカワイソス。"; } else if(iRnd =65) { notifyIcon1.Text="お熱をチェック♪"; } else if(iRnd =70) { notifyIcon1.Text="プリキュアの白いほうは2代目プリキュアなんですよ。知ってました?"; } else if(iRnd =75) { notifyIcon1.Text="絶対少年って結局なんだったのでしょう?ケータイ小説がアニメになるのはこれが初めてですよね。"; } else if(iRnd =80) { notifyIcon1.Text="CISCってなんでこんなに流行るんでしょう?RISCの方が速いのに。"; } else if(iRnd =85) { notifyIcon1.Text="ぺとぺとさんって最後までへたれでしたよ。"; } else if(iRnd =90) { notifyIcon1.Text="MITを10歳で卒業したレベッカ宮本さんは炭素16測定法を電子レンジでやっていました。"; } else if(iRnd =95) { notifyIcon1.Text="シックスセンスで登場していた精神安定剤はZoloftといいます。お兄ちゃんも愛用しています。"; } else if(iRnd =100) { notifyIcon1.Text="USBの汎用デコーダICで世界一の業績をあげているのは、PSoCを作っているサイプレス社なんですよ。"; } else if(iRnd =105) { notifyIcon1.Text="リリカルなのは、は、ラジカルなのはだと思います。"; } else if(iRnd =110) { notifyIcon1.Text="ガオガイガーはお兄ちゃんのアイデンティティー。"; } else if(iRnd =115) { notifyIcon1.Text="戦闘妖精雪風は、物理的なマシンスペックより制御回路が優れていたんだと思います。"; } else if(iRnd =120) { notifyIcon1.Text="AVRマイコンは便利だけど手に入りにくい。"; } else if(iRnd =125) { notifyIcon1.Text="マクロスのスタッフが作ったのはアクエリオンとアルジュナなんですよ。どっちも好きです。"; } else if(iRnd =130) { notifyIcon1.Text="英國戀物語エマって漢字が読めない。"; } else if(iRnd =135) { notifyIcon1.Text="これが私のご主人様ってアキバで下敷き配ってた。"; } else if(iRnd =140) { notifyIcon1.Text="かみちゅ!乙でちゅっ!"; } else if(iRnd =145) { notifyIcon1.Text="ドグマチールは本当に太ります。おっぱいも大きくなります。賓乳のひとは飲んどけ。"; } else if(iRnd =150) { notifyIcon1.Text="アクエリオンはエウレカの11.235倍面白かった。"; } else if(iRnd =155) { notifyIcon1.Text="アドビの製品って何であんなに簡単にクラックされちゃうの?"; } else if(iRnd =160) { notifyIcon1.Text="トリプタノールってすごく効くんですよ。"; } else if(iRnd =165) { notifyIcon1.Text="ちよちゃんのパパはなんであんなに魅力的?"; } else if(iRnd =170) { notifyIcon1.Text="Firefoxってすごくいいですよ。"; } else if(iRnd =175) { notifyIcon1.Text="アモバン、ニガー"; } else if(iRnd =180) { notifyIcon1.Text="Windows98っていまどき使っている人いるのかな?"; } else if(iRnd =185) { notifyIcon1.Text="スクラップド・プリンセスって知ってる人すくないよね。"; } else if(iRnd =190) { notifyIcon1.Text="ふしぎ星の☆ふたご姫のなんちゃらダンスだけフレームレートが異常に多くないですか?"; } else if(iRnd =195) { notifyIcon1.Text="最近のプログラマはアセンブラが使えないような人が多くて困る。"; } else if(iRnd =200) { notifyIcon1.Text="PICって最近のはすごい丈夫。ショートさせても普通に動いてた。"; } else if(iRnd =205) { notifyIcon1.Text="Perlはパールと発音するんですよ。ちなみにプログラム自体の名前は小文字でperl。"; } else if(iRnd =210) { notifyIcon1.Text="アベノ橋魔法商店街って隠れた名作だと思います。夢枕獏よりは面白いと思います。"; } else if(iRnd =215) { notifyIcon1.Text="DaemonToolsを知らない人は人生の負け組み。"; } else if(iRnd =220) { notifyIcon1.Text="WindowsXPのほうがWindows2000より軽いことを人々はまだ知らない・・・"; } else if(iRnd =225) { notifyIcon1.Text="みなさんでIEEEに加盟しましょう。"; } else if(iRnd =230) { notifyIcon1.Text="トレドミンはフランス製。効果もパリジェンヌ。"; } else if(iRnd =235) { notifyIcon1.Text="ベゲタミンのみ過ぎると顔が緑になるって本当?"; } else if(iRnd =240) { notifyIcon1.Text="蟲師って面白いよ。"; } else if(iRnd =240) { notifyIcon1.Text="シノブ伝の音速丸って実は、14番目の使徒なんだって。"; } else if(iRnd =245) { notifyIcon1.Text="エルフェンリート的人類の進化のパラダイムシフトは絶対無い。"; } else if(iRnd =250) { notifyIcon1.Text="ああっ女神さまっは現実逃避ですよ。もっとしっかり前を見据えていざ進もう!"; } else if(iRnd =255) { notifyIcon1.Text="しーぽんのソリッドプログラミングには絶対勝てません・・・"; } else if(iRnd =260) { notifyIcon1.Text="ここだけの話、ハルシオンではトリップできません。むしろドリエルの方が(ry"; } else if(iRnd =265) { notifyIcon1.Text="レキソタンは効きます。デパスは眠くなりますがレキソタンはそんなことは無いです。"; } */ } else if(iRnd =512 gBool[60]==false) { //****CPUに対してツッコミ stringsysTxt; string sub_key = "HARDWARE\\DESCRIPTION\\System\\CentralProcessor\\0" ; RegistryKey reg_key = Registry.LocalMachine.OpenSubKey(sub_key) ; sysTxt = reg_key.GetValue("ProcessorNameString").ToString(); if(sysTxt!=sysTxt.Replace("Celeron","")) { richTextBox1.Text = "Celeronですか・・・このCPUではわたしはまともに動作しませんよ・・・Pentiumに乗り換えることをお勧めします。\n" + richTextBox1.Text; Refresh_hukidasi(); richTextBox1.Refresh(); } else if(sysTxt!=sysTxt.Replace("Pentium","")) { richTextBox1.Text = "Pentiumですか・・・Intelはあまり好きじゃないです。\n" + richTextBox1.Text; Refresh_hukidasi(); richTextBox1.Refresh(); } else if(sysTxt!=sysTxt.Replace("Athlon(tm) 64","")) { richTextBox1.Text = "Athlon64!ナイス環境です~。これでわたしもサクサク動きますよ~。\n" + richTextBox1.Text; Refresh_hukidasi(); richTextBox1.Refresh(); } else if(sysTxt!=sysTxt.Replace("Athlon(tm) XP","")) { richTextBox1.Text = "AthlonXPですか~。AMD Inside!\n" + richTextBox1.Text; Refresh_hukidasi(); richTextBox1.Refresh(); } else { richTextBox1.Text = "CPUの判別ができませんでした。何使ってるんですか?\n" + sysTxt + richTextBox1.Text; Refresh_hukidasi(); richTextBox1.Refresh(); } gBool[60]=true; } } private void timer2_Tick(object sender, System.EventArgs e) { //StringBuilder sb = new StringBuilder(10000) ; // 文字列を new する //IntPtr hwnd = GetForegroundWindow() ; // アクティブウィンドウを取得 //GetWindowText(hwnd, sb, sb.Capacity) ; // タイトルバー文字列を取得 ////sb.Append("はにゃーん"); ////sb.Remove(4,sb.Length - 4); //sb.Remove(0,sb.Length); //// 0 以上 265 未満の乱数を取得する //int iRnd = hRandom.Next(265); // //if(iRnd =1) //{ //sb.Append("最近、運気が足りない気がします。"); //} //else if(iRnd =2) //{ //sb.Append("アホ毛にキノコがはえた。"); //} //else if(iRnd =3) //{ //sb.Append("夢は量子コンピュータとリンクできるんですよ。それを現世に反映させることも。"); //} //else if(iRnd =4) //{ //sb.Append("6号さんの本名は鈴木さやか。"); //} //else if(iRnd =5) //{ //sb.Append("大天使ミカエル参上!!がちんこ勝負いっきまーす!"); //} //else if(iRnd =6) //{ //sb.Append("新感覚癒し系魔法少女ベホイミは軍隊の特殊部隊に在籍していた過去があるんです。"); //} //else if(iRnd =7) //{ //sb.Append("膾にして食ってやる!!"); //} //else if(iRnd =8) //{ //sb.Append("アルゼンチンの国債を買ったやつは人生の負け組み。"); //} //else if(iRnd =9) //{ //sb.Append("ベッキーのメガネが伊達メガネ。"); //} //else if(iRnd =10) //{ //sb.Append("あずまんが大王のちよちゃんよりは大阪派です。"); //} //else if(iRnd =11) //{ //sb.Append("やっぱりストレート方式より、スーパーヘテロダイン方式の方がいいと思います。"); //} //else if(iRnd =12) //{ //sb.Append("ベホイミが持っていた精神安定剤はプロザック。"); //} //else if(iRnd =13) //{ //sb.Append("お目覚めチョップ!!!"); //} //else if(iRnd =14) //{ //sb.Append("マホ~、カニ食べたいマホ!"); //} //else if(iRnd =15) //{ //sb.Append("お兄ちゃんはいまだにドラえもんの新しい声優さんに慣れません。"); //} //else if(iRnd =16) //{ //sb.Append("雄牛のヒロスケは池の精に去勢されました。"); //} //else if(iRnd =17) //{ //
https://w.atwiki.jp/touhoukashi/pages/5308.html
【登録タグ DiGiTAL WiNG H RAVER’S NEST 5 TOHO RAVE PARTY 六十年目の東方裁判 ~ Fate of Sixty Years 綾倉盟】 【注意】 現在、このページはJavaScriptの利用が一時制限されています。この表示状態ではトラック情報が正しく表示されません。 この問題は、以下のいずれかが原因となっています。 ページがAMP表示となっている ウィキ内検索からページを表示している これを解決するには、こちらをクリックし、ページを通常表示にしてください。 /** General styling **/ @font-face { font-family Noto Sans JP ; font-display swap; font-style normal; font-weight 350; src url(https //img.atwikiimg.com/www31.atwiki.jp/touhoukashi/attach/2972/10/NotoSansCJKjp-DemiLight.woff2) format( woff2 ), url(https //img.atwikiimg.com/www31.atwiki.jp/touhoukashi/attach/2972/9/NotoSansCJKjp-DemiLight.woff) format( woff ), url(https //img.atwikiimg.com/www31.atwiki.jp/touhoukashi/attach/2972/8/NotoSansCJKjp-DemiLight.ttf) format( truetype ); } @font-face { font-family Noto Sans JP ; font-display swap; font-style normal; font-weight bold; src url(https //img.atwikiimg.com/www31.atwiki.jp/touhoukashi/attach/2972/13/NotoSansCJKjp-Medium.woff2) format( woff2 ), url(https //img.atwikiimg.com/www31.atwiki.jp/touhoukashi/attach/2972/12/NotoSansCJKjp-Medium.woff) format( woff ), url(https //img.atwikiimg.com/www31.atwiki.jp/touhoukashi/attach/2972/11/NotoSansCJKjp-Medium.ttf) format( truetype ); } rt { font-family Arial, Verdana, Helvetica, sans-serif; } /** Main table styling **/ #trackinfo, #lyrics { font-family Noto Sans JP , sans-serif; font-weight 350; } .track_number { font-family Rockwell; font-weight bold; } .track_number after { content . ; } #track_args, .amp_text { display none; } #trackinfo { position relative; float right; margin 0 0 1em 1em; padding 0.3em; width 320px; border-collapse separate; border-radius 5px; border-spacing 0; background-color #F9F9F9; font-size 90%; line-height 1.4em; } #trackinfo th { white-space nowrap; } #trackinfo th, #trackinfo td { border none !important; } #trackinfo thead th { background-color #D8D8D8; box-shadow 0 -3px #F9F9F9 inset; padding 4px 2.5em 7px; white-space normal; font-size 120%; text-align center; } .trackrow { background-color #F0F0F0; box-shadow 0 2px #F9F9F9 inset, 0 -2px #F9F9F9 inset; } #trackinfo td ul { margin 0; padding 0; list-style none; } #trackinfo li { line-height 16px; } #trackinfo li nth-of-type(n+2) { margin-top 6px; } #trackinfo dl { margin 0; } #trackinfo dt { font-size small; font-weight bold; } #trackinfo dd { margin-left 1.2em; } #trackinfo dd + dt { margin-top .5em; } #trackinfo_help { position absolute; top 3px; right 8px; font-size 80%; } /** Media styling **/ #trackinfo .media th { background-color #D8D8D8; padding 4px 0; font-size 95%; text-align center; } .media td { padding 0 2px; } .media iframe nth-of-type(n+2) { margin-top 0.3em; } .youtube + .nicovideo, .youtube + .soundcloud, .nicovideo + .soundcloud { margin-top 0.75em; } .media_section { display flex; align-items center; text-align center; } .media_section before, .media_section after { display block; flex-grow 1; content ; height 1px; } .media_section before { margin-right 0.5em; background linear-gradient(-90deg, #888, transparent); } .media_section after { margin-left 0.5em; background linear-gradient(90deg, #888, transparent); } .media_notice { color firebrick; font-size 77.5%; } /** Around track styling **/ .next-track { float right; } /** Infomation styling **/ #trackinfo .info_header th { padding .3em .5em; background-color #D8D8D8; font-size 95%; } #trackinfo .infomation_show_btn_wrapper { float right; font-size 12px; user-select none; } #trackinfo .infomation_show_btn { cursor pointer; } #trackinfo .info_content td { padding 0 0 0 5px; height 0; transition .3s; } #trackinfo .info_content ul { padding 0; margin 0; max-height 0; list-style initial; transition .3s; } #trackinfo .info_content li { opacity 0; visibility hidden; margin 0 0 0 1.5em; transition .3s, opacity .2s; } #trackinfo .info_content.infomation_show td { padding 5px; height 100%; } #trackinfo .info_content.infomation_show ul { padding 5px 0; max-height 50em; } #trackinfo .info_content.infomation_show li { opacity 1; visibility visible; } #trackinfo .info_content.infomation_show li nth-of-type(n+2) { margin-top 10px; } /** Lyrics styling **/ #lyrics { font-size 1.06em; line-height 1.6em; } .not_in_card, .inaudible { display inline; position relative; } .not_in_card { border-bottom dashed 1px #D0D0D0; } .tooltip { display flex; visibility hidden; position absolute; top -42.5px; left 0; width 275px; min-height 20px; max-height 100px; padding 10px; border-radius 5px; background-color #555; align-items center; color #FFF; font-size 85%; line-height 20px; text-align center; white-space nowrap; opacity 0; transition 0.7s; -webkit-user-select none; -moz-user-select none; -ms-user-select none; user-select none; } .inaudible .tooltip { top -68.5px; } span hover + .tooltip { visibility visible; top -47.5px; opacity 0.8; transition 0.3s; } .inaudible span hover + .tooltip { top -73.5px; } .not_in_card span.hide { top -42.5px; opacity 0; transition 0.7s; } .inaudible .img { display inline-block; width 3.45em; height 1.25em; margin-right 4px; margin-bottom -3.5px; margin-left 4px; background-image url(https //img.atwikiimg.com/www31.atwiki.jp/touhoukashi/attach/2971/7/Inaudible.png); background-size contain; background-repeat no-repeat; } .not_in_card after, .inaudible .img after { content ; visibility hidden; position absolute; top -8.5px; left 42.5%; border-width 5px; border-style solid; border-color #555 transparent transparent transparent; opacity 0; transition 0.7s; } .not_in_card hover after, .inaudible .img hover after { content ; visibility visible; top -13.5px; left 42.5%; opacity 0.8; transition 0.3s; } .not_in_card after { top -2.5px; left 50%; } .not_in_card hover after { top -7.5px; left 50%; } .not_in_card.hide after { visibility hidden; top -2.5px; opacity 0; transition 0.7s; } /** For mobile device styling **/ .uk-overflow-container { display inline; } #trackinfo.mobile { display table; float none; width 100%; margin auto; margin-bottom 1em; } #trackinfo.mobile th { text-transform none; } #trackinfo.mobile tbody tr not(.media) th { text-align left; background-color unset; } #trackinfo.mobile td { white-space normal; } document.addEventListener( DOMContentLoaded , function() { use strict ; const headers = { title アルバム別曲名 , album アルバム , circle サークル , vocal Vocal , lyric Lyric , chorus Chorus , narrator Narration , rap Rap , voice Voice , whistle Whistle (口笛) , translate Translation (翻訳) , arrange Arrange , artist Artist , bass Bass , cajon Cajon (カホン) , drum Drum , guitar Guitar , keyboard Keyboard , mc MC , mix Mix , piano Piano , sax Sax , strings Strings , synthesizer Synthesizer , trumpet Trumpet , violin Violin , original 原曲 , image_song イメージ曲 }; const rPagename = /(?=^|.*
https://w.atwiki.jp/sampleisbest/pages/189.html
開発環境 Microsoft Visual C++ 2010 Express (SP1) 実行環境 Microsoft Windows XP Home Edition (SP3) プロジェクトの種類 Win32 プロジェクト プロジェクト名 FontTest アプリケーションの種類 Windows アプリケーション 追加のオプション 空のプロジェクト 文字セット Unicode tmExternalLeading 行間最小の高さ tmInternalLeading 発音符の高さ(tmHeightとtmAscentに含まれる) tmHeight フォントの高さ tmAscent + tmDescent tmAscent gjpqyで下にはみ出ない、発音符を含む高さ tmDescent gjpqyで下にはみ出る高さ フォント作成時に指定するフォントの高さ 正 = 発音符を含む高さ(tmHeight) 負 = 発音符を含まない高さ(tmHeight - tmInternalLeading) 推奨される最小の行の高さ = tmExternalLeading + tmHeight FACE_NAME=Arial FONT_HEIGHT=100 tmHeight=100 tmAscent=80 tmDescent=20 tmInternalLeading=11 tmExternalLeading=3 FACE_NAME=Arial FONT_HEIGHT=-100 tmHeight=112 tmAscent=90 tmDescent=22 tmInternalLeading=12 tmExternalLeading=3 FACE_NAME=MS 明朝 FONT_HEIGHT=100 tmHeight=100 tmAscent=86 tmDescent=14 tmInternalLeading=0 tmExternalLeading=0 FACE_NAME=MS 明朝 FONT_HEIGHT=-100 tmHeight=100 tmAscent=86 tmDescent=14 tmInternalLeading=0 tmExternalLeading=0 FACE_NAME=メイリオ FONT_HEIGHT=100 tmHeight=100 tmAscent=71 tmDescent=29 tmInternalLeading=33 tmExternalLeading=0 FACE_NAME=メイリオ FONT_HEIGHT=-100 tmHeight=150 tmAscent=106 tmDescent=44 tmInternalLeading=50 tmExternalLeading=0 FontTest.cpp // Unicode #include Windows.h #include stdio.h #define APP_NAME TEXT("FontTest") //#define FACE_NAME TEXT("Arial") //#define FACE_NAME TEXT("MS 明朝") #define FACE_NAME TEXT("メイリオ") //#define STRING TEXT("Wgjpqy") #define STRING TEXT("Wgjpqy漢字") #define FONT_HEIGHT -100 // 関数プロトタイプ宣言 void Trace(LPCTSTR format, ...); LRESULT CALLBACK WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam); void OnPaint(HWND hWnd); void OnCreate(void); // 外部変数構造体 static struct { HFONT hFont; int nY[3]; } g; //============================================================================== int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE, LPSTR, int nCmdShow) { WNDCLASSEX wcx; HWND hWnd; MSG msg; // ウィンドウクラスの登録 ZeroMemory( wcx, sizeof wcx); wcx.cbSize= sizeof wcx; wcx.style= CS_HREDRAW | CS_VREDRAW; wcx.lpfnWndProc= WndProc; wcx.hInstance= hInstance; wcx.hCursor= LoadCursor(NULL, MAKEINTRESOURCE(IDC_ARROW)); wcx.hbrBackground= (HBRUSH)(COLOR_WINDOW + 1); wcx.lpszClassName= APP_NAME; if (RegisterClassEx( wcx) == 0) { return 0; } // ウィンドウの作成 hWnd = CreateWindow( APP_NAME, APP_NAME, WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, NULL, NULL, hInstance, NULL); if (hWnd == NULL) { return 0; } ShowWindow(hWnd, nCmdShow); UpdateWindow(hWnd); // メッセージループ while (GetMessage( msg, NULL, 0, 0)) { TranslateMessage( msg); DispatchMessage( msg); } return msg.wParam; } //------------------------------------------------------------------------------ void Trace(LPCTSTR format, ...) { va_list arg_ptr; TCHAR buffer[256]; int size; va_start(arg_ptr, format); size = _vsnwprintf_s(buffer, _TRUNCATE, format, arg_ptr); va_end(arg_ptr); OutputDebugString(buffer); if (size 0) { OutputDebugString(TEXT("...\n")); } } //------------------------------------------------------------------------------ LRESULT CALLBACK WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) { switch (uMsg) { case WM_PAINT OnPaint(hWnd); return 0; case WM_CREATE OnCreate(); return 0; case WM_DESTROY DeleteObject(g.hFont); PostQuitMessage(0); return 0; } return DefWindowProc(hWnd, uMsg, wParam, lParam); } //------------------------------------------------------------------------------ void OnPaint(HWND hWnd) { PAINTSTRUCT ps; HDC hdc = BeginPaint(hWnd, ps); RECT rc; GetClientRect(hWnd, rc); SetBkMode(hdc, TRANSPARENT); // 補助線 HPEN hPen = CreatePen(PS_SOLID, 0, RGB(255,0,0)); HGDIOBJ hPenOld = SelectObject(hdc, hPen); for (int n = 0; n 3; n++) { MoveToEx(hdc, 0, g.nY[n], NULL); LineTo(hdc, rc.right, g.nY[n]); } SelectObject(hdc, hPenOld); DeleteObject(hPen); // テスト文字列 HGDIOBJ hFontOld = SelectObject(hdc, g.hFont); TextOut(hdc, 0, 0, STRING, wcslen(STRING)); SelectObject(hdc, hFontOld); EndPaint(hWnd, ps); } //------------------------------------------------------------------------------ void OnCreate(void) { // フォントの作成 LOGFONT lf; ZeroMemory( lf, sizeof lf); lf.lfHeight = FONT_HEIGHT; lf.lfCharSet = DEFAULT_CHARSET; wcscpy_s(lf.lfFaceName, FACE_NAME); g.hFont = CreateFontIndirect( lf); // フォント情報の取得 HDC hdc = GetDC(NULL); HGDIOBJ hFontOld = SelectObject(hdc, g.hFont); TEXTMETRIC tm; GetTextMetrics(hdc, tm); SelectObject(hdc, hFontOld); ReleaseDC(NULL, hdc); Trace(TEXT("FACE_NAME=%s\n"), FACE_NAME); Trace(TEXT("FONT_HEIGHT=%d\n"), FONT_HEIGHT); Trace(TEXT("tmHeight=%d\n"), tm.tmHeight); Trace(TEXT("tmAscent=%d\n"), tm.tmAscent); Trace(TEXT("tmDescent=%d\n"), tm.tmDescent); Trace(TEXT("tmInternalLeading=%d\n"), tm.tmInternalLeading); Trace(TEXT("tmExternalLeading=%d\n"), tm.tmExternalLeading); g.nY[0] = tm.tmInternalLeading; g.nY[1] = tm.tmHeight - tm.tmDescent; g.nY[2] = tm.tmHeight; }
https://w.atwiki.jp/triman/pages/40.html
General Get a mustard pack. What we lack the most is what we lose as we get older mobility, speed, strength/power and elasticity. Not endurance. Pre-Race Practice, Practice, Practice the transition 3 to 4 hours before; up to 2 g carbs per pound of body weight 1 to 2 hours before; up to 1 g carb per pound of body weight The main purpose of the pre-race meal is to fill your liver with glycoge Post-Race The formula is pretty simple. Consume 50-100 grams of carbohydrate and 6-20 grams of protein within 15-20 minutes of finishing, preferably in liquid form. Running Workouts So an athlete training for an Olympic-distance race could run six sets of 1,000 meters at his goal 10k pace followed by a 600 meter recovery run that is slow enough to allow you to hit the next 1,000m rep, but faster than a jog. The shorthand for this workout would be 6x1,000m w/600m steady. Sprint athletes have the same concept for their workout, but the race pace portion is 400 meters and the steady running portion is 200 meters. If you run 10 sets of this, you run 6,000 meters total, with 4,000 meters at goal 5k pace. This workout would be written out as 10x400m w/200m steady. Racing 10k pacing. Mile 1 comfortable, Mile 2-5 steady, Mile 6.2 fast, Your self-talk might be something like repeating smooth or quick to yourself. Bike to Run The number one strategy to run faster is to get in bike shape first. The key to energy management is to minimize the variance in your effor The fact is the more often you run immediately after cycling the more physically AND mentally confident you ll be in your ability to run off the bike. During the bike leg, a good strategy is to ride the first half one gear easier than you feel you can hold Matt Fitzgerald I have found that the most effective way for triathletes to become better pure runners is to focus on running during triathlon s offseason. Pick one or more running races to do over the fall and winter and run up to six times per week to prepare for them. The improvement you experience in this process will carry over to the next triathlon season. The second thing I do with triathletes who are trying to improve their run is to make them stronger cyclists. Again, I strongly suspect that strength on the bike is one of the keys to running well off the bike. This is why I don t encourage triathletes to emphasize run training during the triathlon season. Doing so at the expense of bike training will get you nowhere. Becoming a stronger cyclist is not rocket science. You can do it by riding more or by riding faster or both. Warm Up 6 plyometrics High Knees, Butt Kicks, Spiderman, Frankenstein Walks, Walking Lunges, High Skips dynamic warm-up, teaches your muscles to be explosive, which is helpful for shorter distances, and strengthens your coordination and balance, which is great for longer distances, Carioca with your left foot leading for 30 seconds, then lead with your right to return to the starting point. Tiptoe bounce Take a small jump forward, then to the right, then backward, and then to the left to form a small rectangle. Repeat and advance forward about 20 feet. Switch directions for second set. Good distance runners — even marathoners — do strides in training. A stride is simply a short distance of running that is much faster than race pace. You can go by distance (100m strides) or by time, running roughly 20 seconds fast. You’re not running all out when you do a stride, but you are running faster than 5k race pace. Drils March/SkipDrill A March/SkipDrill B Straight Leg Bound Drill G-Drill Injury The knee (25 to 30 percent of all injuries to endurance runners occur there); The calf and shin (20 percent of all injuries); The IT Band (iliotibial band) - a long sheath of connective tissue which runs from the outside of the hip down to the lateral edge of the knee (10 percent); The Achilles tendon (8 to 10 percent) The foot-the focal point for hobbling injuries like plantar fasciitis (10 percent) Nutrition The American College of Sports Medicine recommends that athletes consume 6 to 10 grams of carbohydrate per kilogram of body weight daily compared to just 1.2 to 1.7 g/kg of protein. Fat needs are represented as a percentage of total calories-specifically 20 to 35 percent of calories-which is also significantly more than the roughly 10 to 20 percent of total calories that the ACSM s weight-based protein recommendations equate to. My 155 lbs equals 70.3 kg. Carbs 60-100g of sugar/ hour. ~ 3 gels.kg 6-10g x 70 kg = 460-700g or 1860 - 2800 calories The morning is when you need the most carbohydrate to replenish liver glycogen stores that have been depleted during the night and to supply immediate energy for the most active part of the day. Protein 1.2-1.7g x 70 = 84-110g or 352-440 cal. 10-20% of total calories Your muscles will repair the damage they suffered during the workout much faster if you consume at least 10 grams of protein in the first hour of recovery than they will if you wait longer to consume the same amount of protein. But taking in protein during the workout itself is even better because it prevents the muscles from suffering some of that damage in the first place. The carb-protein sports drink Accelerade supplies 5 grams of protein per 12 ounces, which is ideal. Note that a little protein goes a long way during exercise and more than a little is sure to cause GI problems In the evening, the body switches hormonally from an activity mode to a repair-and-regenerate mode high levels of protein intake sharply reduce hunger during periods when a person is eating fewer calories than his or her body is using. a high-protein diet has been shown to reduce muscle loss and increase fat loss during periods of caloric deficit Fat Saturated Unsaturated PUFA and MUFA Linoleic acid is from a family of fats known as the omega-6 fats, and alpha-linolenic is from a family of fats known as the omega-3 fats. Two omega-3 fats, docosahexanoic (DHA) and eicosapentaenoic (EPA), are found in fish oils such as salmon and tuna, as well as nuts-especially walnuts, soy, canola and flaxseed oils. Trans fat is found in commercially fried and baked foods such as crackers, cookies and snack foods. It s also found in commercially prepared baked goods, stick margarines and foods containing partially hydrogenated oils. Just like saturated fat, trans fat elevates cholesterol and triglyceride levels and consequently plays a role in heart disease. The pre-run meal provides you with the opportunity to Refill your liver glycogen after an overnight fast and minimize the effects of hypoglycemia Provide accessible and usable carbohydrate/fuel for the early stages of the workout Maximize muscle glycogen stores for use in the later stages of the workout Top off your fluids and help prevent dehydration Settle your stomach by absorbing some of the stomach juices and hold off hunger until the workout is completed Hydration If you weigh 150 pounds, aim for 75g of carb (300) When you re adequately hydrated, your urine will be the color of pale lemonade or straw. If it s clear, you re drinking too much. If it s the color of apple juice, drink more. 18-24 oz. fluid per hour (runners may carry slightly less, but aim for at least 75% of these amounts) Electrolyte Needs For any moderate-to-high intensity training in high heat or humidity, aim for 400-700 mg sodium per hour. If training for 2 hours, ensure you re getting 100-300 mg potassium. If training 3 hours, take 80 mg calcium, and 40 mg magnesium per hour. Any sports drink with 100+ mg sodium and 30+ mg potassium per 8 oz. Another view The general recommendation is no less than 400mL (14 ounces) and no more than 800mL or 28 ounces for each hour. Elite athletes will be on the lower end and less experienced on the higher end. Fluids and Nutrition Needs for Events and Training Daily Water Ingestion 0.5 of body weight in ounces, generally 6 to 9 glasses each day Pre-Event (1 hour prior) 12 to 16 ounces of sports drink (mixed at 40 grams CHO) Pre-Event (15 to 30 minutes prior) 8 to 12 ounces of cool water Pre-Training For working out, ingest 30 minutes prior, 300 calories (40 grams of CHO and optionally 25 grams of protein. For example, CytoSport Pre-Performance is an excellent pre-training (CHO/protein) combination and pre-event product DuringEvent/Training Ingest nothing until 15 minutes into event/training. Then drink 4 to 6 ounces (two to three sips) each 15 minutes (minumum 14 and maximum 28 ounces per hour, if very hot. After Event/Training 16 to 245 ounces during the next 45 to 60 minutes. LT Training the lactate threshold increases the speed at which lactate accumulates and acidosis occurs, enabling runners to run at a higher percentage of VO2 max for a longer time. Increasing the lactate-threshold pace allows runners to run faster before they fatigue because it allows them to run faster before oxygen-independent metabolism begins to play a significant role. Lactate-threshold training is the best aerobic bang for your buck. Pyruvate, the final product of glycolysis, has two fates (1) conversion to Acetyl-Coenzyme A and entry into the Citric Acid Cycle (Krebs Cycle) or (2) conversion to lactic acid. The latter fate occurs when oxygen is not supplied fast enough to meet the needs of the muscle cells When lactic acid is produced at the pH of our body fluids, it immediately releases a proton and thus exists as the molecule lactate rather than as its acid form. At faster speeds, there is a greater reliance on anaerobic glycolysis for energy, and aerobic metabolism (Krebs Cycle and electron transport chain) can t keep up with the production of pyruvate from glycolysis. Pyruvate is thus converted into lactate and lactate removal starts lagging behind lactate production. The lactate threshold is the fastest pace above which lactate production begins to exceed its removal, lactate concentration beginning to increase exponentially If Runner X has a VO2 max of 60 ml/kg/min and a lactate threshold that is 67 percent of her VO2 max, and Runner Y has a VO2 max of 50 ml/kg/min and a lactate threshold that is 80 percent of her VO2 max, both Runner X and Runner Y will be able to sustain a similar intensity, assuming their running economy is equal (67 percent of 60 = 40 ml/kg/min vs. 80 percent of 50 = 40 ml/kg/min). Stretches Anterior Stretch Forward Fold Hamstring Stretch Figure 4 Runner s Lunge Pigeon Hurdler s Stretch Supline Twist Child s Pose Basic Stretches Quads Calfs IT Band Glute/Hamstring Bridge Hamstring Ball Roll Toe Touch Balance Hips Hip circles 3-way lunges Donkey kicks Leg swings Core Plank Ankles Bosu balance Bosu balance with toe touch Exercise Ideas. Frankenstein walk Shoulder taps Bosu Hip Up Bosu Plant to Stand Wood Chop Dumbbell Death Crawl (Pushup and row) Single leg deadlifts Circuit #1 Box Jumps (3 sets, 8 reps) Push-ups (3 sets, 15 reps) Ab Wheel Roll-Outs (3 sets, 10 reps) Circuit #2 Rear Foot Elevated Split Squat(3 sets, 5 per leg) Pull-ups (3 sets, 6 to 8 reps) Tubing Pallof Press(3 sets, 15 per side) Circuit #3 Stability Ball Hamstring Curl(3 sets, 15 reps) Single-Arm Dumbbell Row (3 sets, 6 to 8 reps) Stability Ball Planks(3 sets, 60 seconds) Science Potassium is found primarily inside cells. The recommended daily intake is 4.7 grams. That s 4,700 milligrams. But most people get much less than that from their diet. Most potassium is lost in urine. Very little is lost in sweat. Bananas Potatoes Tomatoes and tomato juice Oranges and orange juice Dates Raisins Soy beans, tofu and edamame Legumes and refried beans Sweet potatoes Greens, such as spinach, kale and beet greens Broccoli Whole grain foods Other fruits and vegetables sodium is the main electrolyte in extracellular fluid. The recommended daily limit on sodium intake is now 1,500 milligrams. It s recommended that you get a minimum of 100 milligrams of sodium per 8 ounces of sports drink. Sodium not only rebalances the fluid and electrolyte ratio in the plasma, but also increases fluid absorption in the gut. as long as you like the taste, it has adequate sodium and some carbs, and you re able to drink around 20 ounces or more per hour, it s a good choice Muscle glycogen stores can provide about 1,400 to 1,800 calories worth of fuel Recovery start with RICE (rest, ice, compression, elevation) on the sore area. If that doesn t work within 24 hours, ibuprofen or a similar pain reliever might help, it s time to check in with a physical therapist Form rollar calves, quads, hamstrings-and don t forget your glutes DOMS or delayed onset of muscle soreness. Physical discomfort is typically muscular in nature and goes away once you ve decreased the intensity or pace. Strength Training Increased muscle strength Increased rate of force development Enhanced neuromuscular function Reduced risk of injuries improves strength, performance, velocity, and running economy in endurance athletes.
https://w.atwiki.jp/touhoukashi/pages/5988.html
【登録タグ N millie 天空の花の都 曲 東方PARTYBOX 博麗神社ver. 発熱巫女~ず】 【注意】 現在、このページはJavaScriptの利用が一時制限されています。この表示状態ではトラック情報が正しく表示されません。 この問題は、以下のいずれかが原因となっています。 ページがAMP表示となっている ウィキ内検索からページを表示している これを解決するには、こちらをクリックし、ページを通常表示にしてください。 /** General styling **/ @font-face { font-family Noto Sans JP ; font-display swap; font-style normal; font-weight 350; src url(https //img.atwikiimg.com/www31.atwiki.jp/touhoukashi/attach/2972/10/NotoSansCJKjp-DemiLight.woff2) format( woff2 ), url(https //img.atwikiimg.com/www31.atwiki.jp/touhoukashi/attach/2972/9/NotoSansCJKjp-DemiLight.woff) format( woff ), url(https //img.atwikiimg.com/www31.atwiki.jp/touhoukashi/attach/2972/8/NotoSansCJKjp-DemiLight.ttf) format( truetype ); } @font-face { font-family Noto Sans JP ; font-display swap; font-style normal; font-weight bold; src url(https //img.atwikiimg.com/www31.atwiki.jp/touhoukashi/attach/2972/13/NotoSansCJKjp-Medium.woff2) format( woff2 ), url(https //img.atwikiimg.com/www31.atwiki.jp/touhoukashi/attach/2972/12/NotoSansCJKjp-Medium.woff) format( woff ), url(https //img.atwikiimg.com/www31.atwiki.jp/touhoukashi/attach/2972/11/NotoSansCJKjp-Medium.ttf) format( truetype ); } rt { font-family Arial, Verdana, Helvetica, sans-serif; } /** Main table styling **/ #trackinfo, #lyrics { font-family Noto Sans JP , sans-serif; font-weight 350; } .track_number { font-family Rockwell; font-weight bold; } .track_number after { content . ; } #track_args, .amp_text { display none; } #trackinfo { position relative; float right; margin 0 0 1em 1em; padding 0.3em; width 320px; border-collapse separate; border-radius 5px; border-spacing 0; background-color #F9F9F9; font-size 90%; line-height 1.4em; } #trackinfo th { white-space nowrap; } #trackinfo th, #trackinfo td { border none !important; } #trackinfo thead th { background-color #D8D8D8; box-shadow 0 -3px #F9F9F9 inset; padding 4px 2.5em 7px; white-space normal; font-size 120%; text-align center; } .trackrow { background-color #F0F0F0; box-shadow 0 2px #F9F9F9 inset, 0 -2px #F9F9F9 inset; } #trackinfo td ul { margin 0; padding 0; list-style none; } #trackinfo li { line-height 16px; } #trackinfo li nth-of-type(n+2) { margin-top 6px; } #trackinfo dl { margin 0; } #trackinfo dt { font-size small; font-weight bold; } #trackinfo dd { margin-left 1.2em; } #trackinfo dd + dt { margin-top .5em; } #trackinfo_help { position absolute; top 3px; right 8px; font-size 80%; } /** Media styling **/ #trackinfo .media th { background-color #D8D8D8; padding 4px 0; font-size 95%; text-align center; } .media td { padding 0 2px; } .media iframe nth-of-type(n+2) { margin-top 0.3em; } .youtube + .nicovideo, .youtube + .soundcloud, .nicovideo + .soundcloud { margin-top 0.75em; } .media_section { display flex; align-items center; text-align center; } .media_section before, .media_section after { display block; flex-grow 1; content ; height 1px; } .media_section before { margin-right 0.5em; background linear-gradient(-90deg, #888, transparent); } .media_section after { margin-left 0.5em; background linear-gradient(90deg, #888, transparent); } .media_notice { color firebrick; font-size 77.5%; } /** Around track styling **/ .next-track { float right; } /** Infomation styling **/ #trackinfo .info_header th { padding .3em .5em; background-color #D8D8D8; font-size 95%; } #trackinfo .infomation_show_btn_wrapper { float right; font-size 12px; user-select none; } #trackinfo .infomation_show_btn { cursor pointer; } #trackinfo .info_content td { padding 0 0 0 5px; height 0; transition .3s; } #trackinfo .info_content ul { padding 0; margin 0; max-height 0; list-style initial; transition .3s; } #trackinfo .info_content li { opacity 0; visibility hidden; margin 0 0 0 1.5em; transition .3s, opacity .2s; } #trackinfo .info_content.infomation_show td { padding 5px; height 100%; } #trackinfo .info_content.infomation_show ul { padding 5px 0; max-height 50em; } #trackinfo .info_content.infomation_show li { opacity 1; visibility visible; } #trackinfo .info_content.infomation_show li nth-of-type(n+2) { margin-top 10px; } /** Lyrics styling **/ #lyrics { font-size 1.06em; line-height 1.6em; } .not_in_card, .inaudible { display inline; position relative; } .not_in_card { border-bottom dashed 1px #D0D0D0; } .tooltip { display flex; visibility hidden; position absolute; top -42.5px; left 0; width 275px; min-height 20px; max-height 100px; padding 10px; border-radius 5px; background-color #555; align-items center; color #FFF; font-size 85%; line-height 20px; text-align center; white-space nowrap; opacity 0; transition 0.7s; -webkit-user-select none; -moz-user-select none; -ms-user-select none; user-select none; } .inaudible .tooltip { top -68.5px; } span hover + .tooltip { visibility visible; top -47.5px; opacity 0.8; transition 0.3s; } .inaudible span hover + .tooltip { top -73.5px; } .not_in_card span.hide { top -42.5px; opacity 0; transition 0.7s; } .inaudible .img { display inline-block; width 3.45em; height 1.25em; margin-right 4px; margin-bottom -3.5px; margin-left 4px; background-image url(https //img.atwikiimg.com/www31.atwiki.jp/touhoukashi/attach/2971/7/Inaudible.png); background-size contain; background-repeat no-repeat; } .not_in_card after, .inaudible .img after { content ; visibility hidden; position absolute; top -8.5px; left 42.5%; border-width 5px; border-style solid; border-color #555 transparent transparent transparent; opacity 0; transition 0.7s; } .not_in_card hover after, .inaudible .img hover after { content ; visibility visible; top -13.5px; left 42.5%; opacity 0.8; transition 0.3s; } .not_in_card after { top -2.5px; left 50%; } .not_in_card hover after { top -7.5px; left 50%; } .not_in_card.hide after { visibility hidden; top -2.5px; opacity 0; transition 0.7s; } /** For mobile device styling **/ .uk-overflow-container { display inline; } #trackinfo.mobile { display table; float none; width 100%; margin auto; margin-bottom 1em; } #trackinfo.mobile th { text-transform none; } #trackinfo.mobile tbody tr not(.media) th { text-align left; background-color unset; } #trackinfo.mobile td { white-space normal; } document.addEventListener( DOMContentLoaded , function() { use strict ; const headers = { title アルバム別曲名 , album アルバム , circle サークル , vocal Vocal , lyric Lyric , chorus Chorus , narrator Narration , rap Rap , voice Voice , whistle Whistle (口笛) , translate Translation (翻訳) , arrange Arrange , artist Artist , bass Bass , cajon Cajon (カホン) , drum Drum , guitar Guitar , keyboard Keyboard , mc MC , mix Mix , piano Piano , sax Sax , strings Strings , synthesizer Synthesizer , trumpet Trumpet , violin Violin , original 原曲 , image_song イメージ曲 }; const rPagename = /(?=^|.*